Function at 0x41059c
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.00417d40
mov eax, dword [0x418074]
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.004080c0
and dword [ebp - 0x1005c], 0
cmp esi, 2
jb 0x410683
cmp dword [0x418534], 0
mov word [ebx], 0x2a
jne 0x41061d
mov esi, 0x2200000
mov dword [ebp - 0x10064], esi
jmp 0x410622
mov esi, 0x2000000
push 0x459fc0
push 0x419fa0
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x10044], eax
cmp eax, 0xffffffff
jne 0x4106c7
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
jne 0x41069d
mov eax, dword [0x419ef0]
mov ecx, 0x406164
test eax, eax
jne 0x410696
mov ecx, 0x401120
mov eax, 0x406174
push ecx
push eax
push ecx
mov edx, 0x439fc0
mov ecx, edi
call fcn.0040e731
push eax
push 0x406178
push 0
call fcn.004126ae
add esp, 0x14
xor eax, eax
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00417690
leave
ret 0xc
mov eax, 0x40616c
jmp 0x410664
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x410683
push ecx
mov edx, 0x439fc0
mov ecx, edi
call fcn.0040e731
push eax
push 0x4062f0
push 0xffffffffffffffff
call fcn.004126ae
add esp, 0xc
jmp 0x410683
mov byte [ebx], 0
mov ebx, eax
mov ecx, dword [0x459fec]
cmp cx, 0x2e
je 0x410e4a
and ecx, 0xffffff
cmp ecx, 0x2e2e
je 0x410e4a
push ecx
lea edx, [ebp - 0x1000c]
mov ecx, edi
call fcn.0040a342
push 0x459fec
lea ecx, [ebp - 0x1000c]
call fcn.00407f19
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 0x410748
lea eax, [ebp - 0x1000c]
push eax
push 0x406320
push esi
call fcn.004126ae
add esp, 0xc
jmp 0x410e4a
lea eax, [ebp - 0x10040]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
jne 0x41077c
lea eax, [ebp - 0x1000c]
push eax
push 0x406354
push 0xffffffffffffffff
call fcn.004126ae
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x410e4a
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x10040]
test al, 2
je 0x41079a
cmp dword [0x419eec], 0
je 0x410e4a
shr eax, 4
and eax, 1
mov ecx, eax
mov dword [ebp - 0x10054], eax
call fcn.00408dc3
test byte [ebp - 0x10040], 2
mov ebx, eax
mov dword [ebp - 0x10048], ebx
je 0x4107c5
or dword [ebx + 0x14], 0x80
mov ecx, dword [ebx + 0x2c]
mov dword [ebx + 0x1c], edi
test ecx, ecx
je 0x41080a
mov eax, dword [ebp - 0x1002c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x10028]
mov dword [ecx + 4], eax
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ebp - 0x10034]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x10030]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ebp - 0x1003c]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x10038]
mov dword [ecx + 0x14], eax
cmp byte [0x45a0f0], 0
je 0x41081a
or dword [ebx + 0x14], 0x8000
cmp dword [0x419ec8], 0
je 0x41082c
cmp dword [0x419ef4], 0
je 0x41083b
mov esi, 0x459fec
push esi
call dword [sym.imp.msvcrt.dll__strupr]
pop ecx
jmp 0x410840
mov esi, 0x459fec
cmp dword [0x419ec4], 0
jne 0x4108b6
xor ebx, ebx
mov ecx, esi
cmp byte [0x45a0f0], bl
setne bl
call fcn.0040e408
test ebx, ebx
je 0x410872
mov ebx, dword [ebp - 0x10048]
test eax, eax
je 0x4108b6
mov byte [0x45a0f0], 0
jmp 0x4108b6
test eax, eax
jne 0x4108b0
mov esi, 0x406388
cmp dword [ebp - 0x10054], eax
jne 0x410888
mov esi, 0x406394
push 0x459fec
push ecx
mov edx, 0x439fc0
mov ecx, edi
call fcn.0040e731
push eax
push esi
push 0x4063a0
push 0
call fcn.004126ae
add esp, 0x14
jmp 0x410e44
mov ebx, dword [ebp - 0x10048]
mov edi, esi
mov ecx, 0x459fec
mov esi, dword [ebp - 0x10054]
mov edx, esi
mov dword [ebp - 0x10050], edi
call fcn.0040e660
cmp byte [0x45a0f0], 0
mov dword [ebp - 0x10048], eax
je 0x4109cc
cmp eax, 0xdd
ja 0x410945
cmp dword [0x419ec4], 0
jne 0x410901
mov ecx, 0x459fec
call fcn.0040e503
test eax, eax
je 0x410945
mov edi, dword [0x419ef4]
test edi, edi
je 0x4109c6
test esi, esi
je 0x410929
mov ecx, 0x459fec
call fcn.0040e640
test eax, eax
je 0x41094b
test esi, esi
jne 0x4109c6
mov al, byte [0x459fec]
mov ecx, 0x459fec
jmp 0x41093c
inc ecx
cmp al, 0x20
jle 0x41094b
mov al, byte [ecx]
test al, al
jne 0x410935
jmp 0x4109c6
mov edi, dword [0x419ef4]
cmp dword [0x419ec8], 0
je 0x410958
test edi, edi
je 0x410964
push 0x45a0f0
call dword [sym.imp.msvcrt.dll__strupr]
pop ecx
mov eax, 0x45a0f0
mov edx, esi
mov ecx, eax
mov dword [ebp - 0x10050], eax
call fcn.0040e660
mov dword [ebp - 0x10048], eax
mov edi, 0x406388
test esi, esi
jne 0x41098c
mov edi, 0x406394
push 0x459fec
push ecx
mov ecx, dword [ebp - 0x1004c]
call fcn.0040e69a
push eax
push 0x45a0f0
push edi
push 0x401120
push 0x4063e8
call dword [sym.imp.msvcrt.dll_printf]
push 1
call fcn.00417c69
add esp, 0x1c
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
mov edi, dword [ebp - 0x10050]
cmp dword [ebp - 0x10048], 0xdd
jbe 0x410a01
test esi, esi
mov esi, 0x401bcc
jne 0x4109e6
mov esi, 0x401bd8
push edi
mov edi, dword [ebp - 0x1004c]
push ecx
mov ecx, edi
call fcn.0040e69a
push eax
push esi
push 0x406424
jmp 0x4108a1
push 0x3b
push edi
call dword [sym.imp.msvcrt.dll_strchr]
pop ecx
pop ecx
test eax, eax
je 0x410a39
test esi, esi
mov esi, 0x401bcc
jne 0x410a1e
mov esi, 0x401bd8
push edi
mov edi, dword [ebp - 0x1004c]
push ecx
mov ecx, edi
call fcn.0040e69a
push eax
push esi
push 0x406458
jmp 0x4108a1
cmp dword [0x419ec4], 0
je 0x410a84
cmp dword [0x419ef4], 0
jne 0x410a84
cmp dword [0x419ef8], 0
jne 0x410a84
test esi, esi
je 0x410a67
mov ecx, edi
call fcn.0040e640
test eax, eax
je 0x410a7a
test esi, esi
jne 0x410a9b
mov al, byte [edi]
mov ecx, edi
jmp 0x410a74
inc ecx
cmp al, 0x20
jle 0x410a7a
mov al, byte [ecx]
test al, al
jne 0x410a6d
jmp 0x410a84
mov dword [0x419ef8], 1
test esi, esi
jne 0x410a9b
cmp dword [0x419edc], esi
jne 0x410a9b
mov eax, dword [ebp - 0x10048]
lea edi, [eax - 1]
jmp 0x410aa4
mov eax, dword [ebp - 0x10048]
lea edi, [eax + 1]
mov ecx, edi
mov dword [ebp - 0x10060], edi
mov word [ebx + 0x18], ax
call fcn.004128dd
mov ecx, dword [ebp - 0x10050]
push ecx
push edi
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.004091ad
mov ecx, dword [0x419eb0]
mov edx, dword [ebp - 0x10058]
mov dword [ebp - 0x1005c], eax
test ecx, ecx
je 0x410b3c
mov eax, dword [ebp - 0x10068]
add eax, edx
add eax, dword [ebp - 0x10048]
cmp eax, 0xff
jbe 0x410b3c
push ecx
mov ecx, ebx
call fcn.0040e69a
push eax
mov edi, 0x401120
push edi
push 0x4064b0
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.00417c69
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
mov edx, dword [ebp - 0x10058]
pop ecx
mov ecx, dword [0x419eb0]
jmp 0x410b41
mov edi, 0x401120
test esi, esi
je 0x410ce1
test ecx, ecx
je 0x410b7a
cmp edx, 8
jb 0x410b7a
push ecx
mov ecx, ebx
call fcn.0040e69a
push eax
push edi
push 0x4064f8
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.00417c69
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
cmp dword [0x419eb8], 0
je 0x410bb6
mov ecx, dword [ebx]
call fcn.0040e503
test eax, eax
jne 0x410bb6
push ecx
mov ecx, ebx
call fcn.0040e69a
push eax
push edi
push 0x40653c
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.00417c69
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
cmp dword [0x419ebc], 0
je 0x410bf2
mov ecx, dword [ebx]
call fcn.0040e590
test eax, eax
jne 0x410bf2
push ecx
mov ecx, ebx
call fcn.0040e69a
push eax
push edi
push 0x40656c
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.00417c69
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
cmp dword [0x419f2c], 0
mov edi, dword [ebp - 0x1004c]
je 0x410c2b
cmp dword [0x419f70], 0
jne 0x410c2b
cmp edi, dword [0x418e80]
jne 0x410c2b
push 0x40659c
push dword [ebx]
call dword [sym.imp.msvcrt.dll__stricmp]
pop ecx
pop ecx
test eax, eax
jne 0x410c2b
mov dword [0x419f70], ebx
cmp dword [0x419f68], 0
je 0x410e44
cmp dword [0x419f74], 0
jne 0x410c62
cmp edi, dword [0x418e80]
jne 0x410c62
push 0x4065a4
push dword [ebx]
call dword [sym.imp.msvcrt.dll__stricmp]
pop ecx
pop ecx
test eax, eax
jne 0x410c62
mov dword [0x419f74], ebx
cmp dword [0x419f68], 0
je 0x410e44
cmp dword [0x419f78], 0
jne 0x410c99
cmp edi, dword [0x418e80]
jne 0x410c99
push 0x4065b0
push dword [ebx]
call dword [sym.imp.msvcrt.dll__stricmp]
pop ecx
pop ecx
test eax, eax
jne 0x410c99
mov dword [0x419f78], ebx
cmp dword [0x419f68], 0
je 0x410e44
cmp dword [0x419f7c], 0
jne 0x410e44
cmp edi, dword [0x418e80]
jne 0x410e44
push 0x4065bc
push dword [ebx]
call dword [sym.imp.msvcrt.dll__stricmp]
pop ecx
pop ecx
test eax, eax
jne 0x410e44
mov dword [0x419f7c], ebx
jmp 0x410e44
cmp dword [0x419eb8], 0
je 0x410d1d
mov ecx, dword [ebx]
call fcn.0040e503
test eax, eax
jne 0x410d1d
push ecx
mov ecx, ebx
call fcn.0040e69a
push eax
push edi
push 0x4065c8
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.00417c69
pop ecx
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
cmp dword [0x419ebc], 0
je 0x410d59
mov ecx, dword [ebx]
call fcn.0040e5d3
test eax, eax
jne 0x410d59
push ecx
mov ecx, ebx
call fcn.0040e69a
push eax
push edi
push 0x4065f4
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.00417c69
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 [0x419eac], 0
mov dword [ebp - 0x10054], ecx
mov dword [ebp - 0x10048], esi
je 0x410db0
mov eax, ecx
or eax, esi
jne 0x410db0
push ecx
mov ecx, ebx
call fcn.0040e69a
push eax
push edi
push 0x406620
call dword [sym.imp.msvcrt.dll_printf]
add esp, 0xc
push 1
call fcn.00417c69
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 [0x41812c]
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.00417cd0
add dword [0x418568], eax
mov eax, dword [ebp - 0x10054]
add dword [0x419d18], eax
mov eax, dword [ebp - 0x10048]
adc dword [0x419d1c], eax
call fcn.0040810e
cmp dword [0x419edc], 0
jne 0x410e3e
push 0x2e
push dword [ebx]
call dword [sym.imp.msvcrt.dll_strchr]
pop ecx
pop ecx
test eax, eax
jne 0x410e3e
push 0x401aac
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 0x459fc0
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov esi, dword [ebp - 0x10064]
test eax, eax
jne 0x4106cc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x410e8c
push ecx
mov edx, 0x439fc0
mov ecx, edi
call fcn.0040e731
push eax
push 0x4062f0
push 0xffffffffffffffff
call fcn.004126ae
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [ebp - 0x1005c]
mov edi, esi
test esi, esi
je 0x410f4c
mov ebx, dword [ebp - 0x10070]
cmp dword [edi + 0x14], 0
jge 0x410f3b
mov esi, dword [edi]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x410eb8
sub esi, ecx
mov ecx, dword [ebp - 0x1006c]
lea eax, [esi + 2]
cmp ecx, eax
jae 0x410efc
push ecx
push ecx
mov ecx, edi
call fcn.0040e69a
push eax
push 0x401120
push 0x40664c
call dword [sym.imp.msvcrt.dll_printf]
push 1
call fcn.00417c69
add esp, 0x14
push eax
call dword [sym.imp.msvcrt.dll_fflush]
pop ecx
jmp 0x410f3b
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.0041059c
mov ecx, dword [edi + 0x34]
mov dword [ecx], eax
mov edi, dword [edi + 0x24]
test edi, edi
jne 0x410ea9
mov esi, dword [ebp - 0x1005c]
mov eax, esi
jmp 0x410685