Function at 0x40d900
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x450
lea ecx, [esp + 0x144]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x460]
push edi
push eax
push esi
push ecx
xor edi, edi
call fcn.0040d860
add esp, 0xc
lea edx, [esp + 0x14]
lea eax, [esp + 0x154]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, dword [esp + 0x478]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x40da1f
mov eax, dword [esp + 0x470]
test eax, eax
mov al, byte [esp + 0x14]
je 0x40d98a
test al, 0x10
jne 0x40d98e
lea ecx, [esp + 0x14]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x40da18
mov eax, dword [esp + 0x470]
test eax, eax
mov al, byte [esp + 0x14]
je 0x40d9d1
test al, 0x10
jne 0x40d9d5
jmp 0x40da04
test al, 0x10
jne 0x40d961
lea ecx, [esp + 0x40]
lea edx, [esp + 0x35c]
push ecx
push esi
push edx
mov edi, 1
call fcn.0040d860
add esp, 0xc
lea eax, [esp + 0x35c]
push ebx
push eax
call dword [esp + 0x47c]
test eax, eax
jne 0x40d961
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x450
ret
test al, 0x10
jne 0x40da04
lea edx, [esp + 0x40]
lea eax, [esp + 0x35c]
push edx
push esi
push eax
inc edi
call fcn.0040d860
add esp, 0xc
lea ecx, [esp + 0x35c]
push ebx
push ecx
call dword [esp + 0x47c]
test eax, eax
je 0x40db52
lea edx, [esp + 0x14]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40d975
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0x43fdac
lea eax, [esp + 0x158]
push esi
push eax
call fcn.0040d860
mov ebp, dword [esp + 0x478]
add esp, 0xc
test ebp, ebp
je 0x40db45
lea ecx, [esp + 0x14]
lea edx, [esp + 0x154]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x40db45
test byte [esp + 0x14], 0x10
je 0x40dabb
lea eax, [esp + 0x40]
push eax
call fcn.0040db70
add esp, 4
test eax, eax
jne 0x40dabb
lea ecx, [esp + 0x40]
lea edx, [esp + 0x258]
push ecx
push esi
push edx
call fcn.0040d860
mov eax, dword [esp + 0x480]
mov ecx, dword [esp + 0x47c]
mov edx, dword [esp + 0x474]
push ebx
push eax
push ecx
push ebp
lea eax, [esp + 0x274]
push edx
push eax
call fcn.0040d900
add esp, 0x24
add edi, eax
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x40db3a
test byte [esp + 0x14], 0x10
je 0x40db26
lea eax, [esp + 0x40]
push eax
call fcn.0040db70
add esp, 4
test eax, eax
jne 0x40db26
lea ecx, [esp + 0x40]
lea edx, [esp + 0x258]
push ecx
push esi
push edx
call fcn.0040d860
mov eax, dword [esp + 0x480]
mov ecx, dword [esp + 0x47c]
mov edx, dword [esp + 0x474]
push ebx
push eax
push ecx
push ebp
lea eax, [esp + 0x274]
push edx
push eax
call fcn.0040d900
add esp, 0x24
add edi, eax
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40dacf
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x450
ret
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x450
ret