Function at 0x40a3c0
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.0040a320
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 0x40a4df
mov eax, dword [esp + 0x470]
test eax, eax
mov al, byte [esp + 0x14]
je 0x40a44a
test al, 0x10
jne 0x40a44e
lea ecx, [esp + 0x14]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x40a4d8
mov eax, dword [esp + 0x470]
test eax, eax
mov al, byte [esp + 0x14]
je 0x40a491
test al, 0x10
jne 0x40a495
jmp 0x40a4c4
test al, 0x10
jne 0x40a421
lea ecx, [esp + 0x40]
lea edx, [esp + 0x35c]
push ecx
push esi
push edx
mov edi, 1
call fcn.0040a320
add esp, 0xc
lea eax, [esp + 0x35c]
push ebx
push eax
call dword [esp + 0x47c]
test eax, eax
jne 0x40a421
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 0x40a4c4
lea edx, [esp + 0x40]
lea eax, [esp + 0x35c]
push edx
push esi
push eax
inc edi
call fcn.0040a320
add esp, 0xc
lea ecx, [esp + 0x35c]
push ebx
push ecx
call dword [esp + 0x47c]
test eax, eax
je 0x40a612
lea edx, [esp + 0x14]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40a435
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0x439764
lea eax, [esp + 0x158]
push esi
push eax
call fcn.0040a320
mov ebp, dword [esp + 0x478]
add esp, 0xc
test ebp, ebp
je 0x40a605
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 0x40a605
test byte [esp + 0x14], 0x10
je 0x40a57b
lea eax, [esp + 0x40]
push eax
call fcn.0040a630
add esp, 4
test eax, eax
jne 0x40a57b
lea ecx, [esp + 0x40]
lea edx, [esp + 0x258]
push ecx
push esi
push edx
call fcn.0040a320
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.0040a3c0
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 0x40a5fa
test byte [esp + 0x14], 0x10
je 0x40a5e6
lea eax, [esp + 0x40]
push eax
call fcn.0040a630
add esp, 4
test eax, eax
jne 0x40a5e6
lea ecx, [esp + 0x40]
lea edx, [esp + 0x258]
push ecx
push esi
push edx
call fcn.0040a320
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.0040a3c0
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 0x40a58f
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