Function at 0x410834
Capabilities:
Check if file exists
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x10070
call fcn.00418280
mov eax, dword [0x419074]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, edx
push edi
mov edi, ecx
mov dword [ebp - 0x10058], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x10070], ebx
mov dword [ebp - 0x1004c], edi
mov dword [ebp - 0x1006c], esi
mov dword [ebp - 0x10068], eax
mov dword [ebp - 0x10064], 0x2000000
call fcn.0040812c
and dword [ebp - 0x1005c], 0
cmp esi, 2
jb 0x41091b
cmp dword [0x419514], 0
mov word [ebx], 0x2a
jne 0x4108b5
mov esi, 0x2200000
mov dword [ebp - 0x10064], esi
jmp 0x4108ba
mov esi, 0x2000000
push 0x45afa0
push 0x41af80
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x10044], eax
cmp eax, 0xffffffff
jne 0x41095f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
jne 0x410935
mov eax, dword [0x41aed0]
mov ecx, 0x40616c
test eax, eax
jne 0x41092e
mov ecx, 0x401130
mov eax, 0x40617c
push ecx
push eax
push ecx
mov edx, 0x43afa0
mov ecx, edi
call fcn.0040e995
push eax
push 0x406180
push 0
call fcn.004129f0
add esp, 0x14
xor eax, eax
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00417b60
leave
ret 0xc
mov eax, 0x406174
jmp 0x4108fc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x41091b
push ecx
mov edx, 0x43afa0
mov ecx, edi
call fcn.0040e995
push eax
push 0x4062f8
push 0xffffffffffffffff
call fcn.004129f0
add esp, 0xc
jmp 0x41091b
mov byte [ebx], 0
mov ebx, eax
mov ecx, dword [0x45afcc]
cmp cx, 0x2e
je 0x41110c
and ecx, 0xffffff
cmp ecx, 0x2e2e
je 0x41110c
push ecx
lea edx, [ebp - 0x1000c]
mov ecx, edi
call fcn.0040a4b5
push 0x45afcc
lea ecx, [ebp - 0x1000c]
call fcn.00407f70
push 0
push esi
push 3
push 0
push 3
push 0x80
lea eax, [ebp - 0x1000c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4109e0
lea eax, [ebp - 0x1000c]
push eax
push 0x406328
push esi
call fcn.004129f0
add esp, 0xc
jmp 0x41110c
lea eax, [ebp - 0x10040]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
jne 0x410a14
lea eax, [ebp - 0x1000c]
push eax
push 0x40635c
push 0xffffffffffffffff
call fcn.004129f0
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x41110c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x10040]
test al, 2
je 0x410a32
cmp dword [0x41aecc], 0
je 0x41110c
shr eax, 4
and eax, 1
mov ecx, eax
mov dword [ebp - 0x10054], eax
call fcn.00408ec5
test byte [ebp - 0x10040], 2
mov ebx, eax
mov dword [ebp - 0x10048], ebx
je 0x410a5d
or dword [ebx + 0x14], 0x80
mov edx, dword [ebx + 0x2c]
mov dword [ebx + 0x1c], edi
test edx, edx
je 0x410aa2
mov eax, dword [ebp - 0x1002c]
mov ecx, dword [ebp - 0x10028]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebp - 0x10034]
mov edx, dword [ebp - 0x10030]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebp - 0x1003c]
mov edx, dword [ebp - 0x10038]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
cmp byte [0x45b0d0], 0
je 0x410ab2
or dword [ebx + 0x14], 0x8000
cmp dword [0x41aea8], 0
je 0x410ac4
cmp dword [0x41aed4], 0
je 0x410ad3
mov esi, 0x45afcc
push esi
call dword [sym.imp.msvcrt.dll__strupr]
pop ecx
jmp 0x410ad8
mov esi, 0x45afcc
cmp dword [0x41aea4], 0
jne 0x410b54
xor ebx, ebx
mov ecx, esi
cmp byte [0x45b0d0], bl
setne bl
call fcn.0040e636
test ebx, ebx
je 0x410b0a
mov ebx, dword [ebp - 0x10048]
test eax, eax
je 0x410b54
mov byte [0x45b0d0], 0
jmp 0x410b54
test eax, eax
jne 0x410b4e
mov esi, 0x406390
cmp dword [ebp - 0x10054], eax
jne 0x410b20
mov esi, 0x40639c
mov edi, dword [ebp - 0x1004c]
mov edx, 0x43afa0
push 0x45afcc
push ecx
mov ecx, edi
call fcn.0040e995
push eax
push esi
push 0x4063a8
push 0
call fcn.004129f0
add esp, 0x14
jmp 0x411106
mov ebx, dword [ebp - 0x10048]
mov edi, dword [ebp - 0x10054]
mov ecx, 0x45afcc
mov edx, edi
mov dword [ebp - 0x10050], esi
call fcn.0040e8b2
cmp byte [0x45b0d0], 0
mov dword [ebp - 0x10048], eax
je 0x410c60
cmp eax, 0xdd
ja 0x410bd9
cmp dword [0x41aea4], 0
jne 0x410b9d
mov ecx, 0x45afcc
call fcn.0040e73d
test eax, eax
je 0x410bd9
mov esi, dword [0x41aed4]
test esi, esi
je 0x410c5a
mov ecx, 0x45afcc
test edi, edi
je 0x410bc2
call 0x40e88c
test eax, eax
je 0x410bdf
jmp 0x410c5a
mov al, byte [0x45afcc]
jmp 0x410bd0
inc ecx
cmp al, 0x20
jle 0x410bdf
mov al, byte [ecx]
test al, al
jne 0x410bc9
jmp 0x410c5a
mov esi, dword [0x41aed4]
cmp dword [0x41aea8], 0
je 0x410bec
test esi, esi
je 0x410bf8
push 0x45b0d0
call dword [sym.imp.msvcrt.dll__strupr]
pop ecx
mov eax, 0x45b0d0
mov edx, edi
mov ecx, eax
mov dword [ebp - 0x10050], eax
call fcn.0040e8b2
mov dword [ebp - 0x10048], eax
mov esi, 0x406390
test edi, edi
jne 0x410c20
mov esi, 0x40639c
push 0x45afcc
push ecx
mov ecx, dword [ebp - 0x1004c]
call fcn.0040e8f2
push eax
push 0x45b0d0
push esi
push 0x401130
push 0x4063f0
call dword [sym.imp.msvcrt.dll_printf]
push 1
call fcn.004181a9
add esp, 0x1c
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
mov esi, dword [ebp - 0x10050]
cmp dword [ebp - 0x10048], 0xdd
jbe 0x410c9b
mov esi, 0x401bdc
test edi, edi
jne 0x410c7a
mov esi, 0x401be8
mov ecx, dword [ebp - 0x10050]
mov edi, dword [ebp - 0x1004c]
push ecx
push ecx
mov ecx, edi
call fcn.0040e8f2
push eax
push esi
push 0x40642c
jmp 0x410b3f
push 0x3b
push esi
call dword [sym.imp.msvcrt.dll_strchr]
pop ecx
pop ecx
test eax, eax
je 0x410cd9
mov esi, 0x401bdc
test edi, edi
jne 0x410cb8
mov esi, 0x401be8
mov ecx, dword [ebp - 0x10050]
mov edi, dword [ebp - 0x1004c]
push ecx
push ecx
mov ecx, edi
call fcn.0040e8f2
push eax
push esi
push 0x406460
jmp 0x410b3f
cmp dword [0x41aea4], 0
je 0x410dd7
cmp dword [0x41aed4], 0
jne 0x410dd7
cmp dword [0x41aed8], 0
jne 0x410dd7
mov ecx, esi
test edi, edi
je 0x410dbc
call 0x40e88c
test eax, eax
je 0x410dcd
mov eax, dword [ebp - 0x10048]
lea esi, [eax + 1]
mov ecx, esi
mov dword [ebp - 0x10060], esi
mov word [ebx + 0x18], ax
call fcn.00412c5b
mov ecx, dword [ebp - 0x10050]
push ecx
push esi
push eax
mov dword [ebx], eax
call dword [sym.imp.msvcrt.dll_strcpy_s]
mov ecx, dword [ebp - 0x1005c]
add esp, 0xc
mov edx, ebx
call fcn.004092c7
mov ecx, dword [0x41ae90]
mov edx, dword [ebp - 0x10058]
mov dword [ebp - 0x1005c], eax
test ecx, ecx
je 0x410dfa
mov eax, dword [ebp - 0x10068]
add eax, edx
add eax, dword [ebp - 0x10048]
cmp eax, 0xff
jbe 0x410dfa
push ecx
mov ecx, ebx
call fcn.0040e8f2
push eax
mov esi, 0x401130
push esi
push 0x4064b8
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.004181a9
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
mov edx, dword [ebp - 0x10058]
pop ecx
mov ecx, dword [0x41ae90]
jmp 0x410dff
mov al, byte [esi]
jmp 0x410dc7
inc ecx
cmp al, 0x20
jle 0x410dcd
mov al, byte [ecx]
test al, al
jne 0x410dc0
jmp 0x410ddf
mov dword [0x41aed8], 1
test edi, edi
jne 0x410d17
cmp dword [0x41aebc], 0
jne 0x410d17
mov eax, dword [ebp - 0x10048]
lea esi, [eax - 1]
jmp 0x410d20
mov esi, 0x401130
test edi, edi
je 0x410f9f
test ecx, ecx
je 0x410e38
cmp edx, 8
jb 0x410e38
push ecx
mov ecx, ebx
call fcn.0040e8f2
push eax
push esi
push 0x406500
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.004181a9
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
cmp dword [0x41ae98], 0
je 0x410e74
mov ecx, dword [ebx]
call fcn.0040e73d
test eax, eax
jne 0x410e74
push ecx
mov ecx, ebx
call fcn.0040e8f2
push eax
push esi
push 0x406544
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.004181a9
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
cmp dword [0x41ae9c], 0
je 0x410eb0
mov ecx, dword [ebx]
call fcn.0040e7d0
test eax, eax
jne 0x410eb0
push ecx
mov ecx, ebx
call fcn.0040e8f2
push eax
push esi
push 0x406574
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.004181a9
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
cmp dword [0x41af0c], 0
mov edi, dword [ebp - 0x1004c]
je 0x410ee9
cmp dword [0x41af50], 0
jne 0x410ee9
cmp edi, dword [0x419e60]
jne 0x410ee9
push 0x4065a4
push dword [ebx]
call dword [sym.imp.msvcrt.dll__stricmp]
pop ecx
pop ecx
test eax, eax
jne 0x410ee9
mov dword [0x41af50], ebx
cmp dword [0x41af48], 0
je 0x411106
cmp dword [0x41af54], 0
jne 0x410f20
cmp edi, dword [0x419e60]
jne 0x410f20
push 0x4065ac
push dword [ebx]
call dword [sym.imp.msvcrt.dll__stricmp]
pop ecx
pop ecx
test eax, eax
jne 0x410f20
mov dword [0x41af54], ebx
cmp dword [0x41af48], 0
je 0x411106
cmp dword [0x41af58], 0
jne 0x410f57
cmp edi, dword [0x419e60]
jne 0x410f57
push 0x4065b8
push dword [ebx]
call dword [sym.imp.msvcrt.dll__stricmp]
pop ecx
pop ecx
test eax, eax
jne 0x410f57
mov dword [0x41af58], ebx
cmp dword [0x41af48], 0
je 0x411106
cmp dword [0x41af5c], 0
jne 0x411106
cmp edi, dword [0x419e60]
jne 0x411106
push 0x4065c4
push dword [ebx]
call dword [sym.imp.msvcrt.dll__stricmp]
pop ecx
pop ecx
test eax, eax
jne 0x411106
mov dword [0x41af5c], ebx
jmp 0x411106
cmp dword [0x41ae98], 0
je 0x410fdb
mov ecx, dword [ebx]
call fcn.0040e73d
test eax, eax
jne 0x410fdb
push ecx
mov ecx, ebx
call fcn.0040e8f2
push eax
push esi
push 0x4065d0
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.004181a9
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
cmp dword [0x41ae9c], 0
je 0x411017
mov ecx, dword [ebx]
call 0x40e819
test eax, eax
jne 0x411017
push ecx
mov ecx, ebx
call fcn.0040e8f2
push eax
push esi
push 0x4065fc
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.004181a9
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
mov esi, dword [ebp - 0x10020]
xor ecx, ecx
or ecx, dword [ebp - 0x1001c]
cmp dword [0x41ae8c], 0
mov dword [ebp - 0x10054], ecx
mov dword [ebp - 0x10048], esi
je 0x411072
mov eax, ecx
or eax, esi
jne 0x411072
push ecx
mov ecx, ebx
call fcn.0040e8f2
push eax
push 0x401130
push 0x406628
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.004181a9
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
mov ecx, dword [ebp - 0x10054]
push 0
pop edx
mov dword [ebx + 0xc], esi
mov esi, dword [0x41912c]
mov edi, esi
add edi, ecx
mov dword [ebx + 8], ecx
push 0
adc edx, dword [ebp - 0x10048]
mov ecx, esi
add edi, 0xffffffff
pop eax
adc edx, 0xffffffff
add ecx, 0xffffffff
push 0
adc eax, 0xffffffff
not ecx
not eax
and edi, ecx
push esi
and edx, eax
push edx
push edi
call fcn.00418210
add dword [0x419548], eax
mov eax, dword [ebp - 0x10054]
add dword [0x41acf8], eax
mov eax, dword [ebp - 0x10048]
adc dword [0x41acfc], eax
call fcn.00408180
cmp dword [0x41aebc], 0
jne 0x411100
push 0x2e
push dword [ebx]
call dword [sym.imp.msvcrt.dll_strchr]
pop ecx
pop ecx
test eax, eax
jne 0x411100
push 0x401abc
push dword [ebp - 0x10060]
push dword [ebx]
call dword [sym.imp.msvcrt.dll_strcat_s]
add esp, 0xc
mov edi, dword [ebp - 0x1004c]
mov ebx, dword [ebp - 0x10044]
push 0x45afa0
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov esi, dword [ebp - 0x10064]
test eax, eax
jne 0x410964
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x41114e
push ecx
mov edx, 0x43afa0
mov ecx, edi
call fcn.0040e995
push eax
push 0x4062f8
push 0xffffffffffffffff
call fcn.004129f0
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [ebp - 0x1005c]
mov edi, esi
test esi, esi
je 0x41120e
mov ebx, dword [ebp - 0x10070]
cmp dword [edi + 0x14], 0
jge 0x4111fd
mov esi, dword [edi]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x41117a
sub esi, ecx
mov ecx, dword [ebp - 0x1006c]
lea eax, [esi + 2]
cmp ecx, eax
jae 0x4111be
push ecx
push ecx
mov ecx, edi
call fcn.0040e8f2
push eax
push 0x401130
push 0x406654
call dword [sym.imp.msvcrt.dll_printf]
push 1
call fcn.004181a9
add esp, 0x14
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
jmp 0x4111fd
push esi
push dword [edi]
push ebx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x10068]
lea edx, [ebx + 1]
add esp, 0xc
mov byte [ebx + esi], 0x5c
add eax, esi
add edx, esi
mov ecx, edi
push eax
mov eax, dword [ebp - 0x10058]
inc eax
mov byte [edx], 0
push eax
mov eax, dword [ebp - 0x1006c]
sub eax, esi
dec eax
push eax
call fcn.00410834
mov ecx, dword [edi + 0x34]
mov dword [ecx], eax
mov edi, dword [edi + 0x24]
test edi, edi
jne 0x41116b
mov esi, dword [ebp - 0x1005c]
mov eax, esi
jmp 0x41091d