Function at 0x416380
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0x194]
push ebx
push esi
push edi
mov ebx, eax
mov esi, dword [ebp + 0x10]
mov byte [ebp - 0x18c], dl
mov byte [ebp - 0x190], cl
mov al, byte [ebp + 0xc]
mov byte [ebp - 0x188], al
mov eax, dword [ebp + 8]
mov dword [ebp - 0x184], eax
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0
mov eax, 1
lea edx, [ebp - 0x16c]
lea ecx, [ebp - 0x154]
call fcn.0040e9f0
call fcn.00410590
push eax
test eax, eax
jne 0x416602
mov dword [ebp - 0x174], 0
lea eax, [ebp - 0x174]
push eax
mov edx, 0x44af24
mov eax, dword [ebp - 0x184]
mov ecx, 1
call fcn.0040db10
mov eax, ebx
test ebx, ebx
je 0x41642f
mov eax, dword [eax - 4]
mov al, byte [ebx + eax - 1]
cmp al, 0x2f
je 0x41643b
cmp al, 0x5c
jne 0x416447
mov edx, ebx
lea eax, [ebp - 4]
call fcn.0040a750
jmp 0x416458
push 0
mov ecx, 0x44af98
mov edx, ebx
lea eax, [ebp - 4]
call fcn.0040a850
mov eax, esi
test esi, esi
je 0x416464
mov eax, dword [eax - 4]
add eax, 1
test eax, eax
jle 0x416481
mov edx, 0x44afa8
mov eax, dword [esi]
call fcn.0040b1c0
test eax, eax
jne 0x416481
mov byte [ebp - 0x194], 1
jmp 0x416488
mov byte [ebp - 0x194], 0
push 0x140
lea eax, [ebp - 0x148]
push eax
call fcn.00414aa0
lea eax, [ebp - 0x148]
push eax
lea eax, [ebp - 0x178]
call fcn.00405a50
push 0
mov ecx, 0x44afa8
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x178]
call fcn.0040a850
mov eax, dword [ebp - 0x178]
test eax, eax
jne 0x4164cf
mov eax, 0x4563a0
push eax
call sub.kernel32.dll_FindFirstFileA
mov ebx, eax
test ebx, ebx
je 0x4165fc
nop
mov eax, dword [ebp - 0x148]
and eax, 2
seta al
test al, al
je 0x4164fe
mov al, byte [ebp - 0x188]
test al, al
je 0x4165e7
mov al, byte [ebp - 0x18c]
test al, al
je 0x41653a
push 0
push 1
lea eax, [ebp - 0x17c]
push eax
lea eax, [ebp - 0x11c]
mov cx, 0
mov edx, 0x103
call fcn.0040b110
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ebp - 4]
lea eax, [ebp - 8]
call fcn.0040a850
jmp 0x416565
push 1
lea eax, [ebp - 0x17c]
push eax
lea eax, [ebp - 0x11c]
mov cx, 0
mov edx, 0x103
call fcn.0040b110
mov edx, dword [ebp - 0x17c]
lea eax, [ebp - 8]
call fcn.0040a750
mov eax, dword [ebp - 0x148]
and eax, 0x10
seta al
test al, al
je 0x41658f
mov al, byte [ebp - 0x190]
test al, al
je 0x4165e7
mov eax, dword [ebp - 0x184]
mov edx, dword [ebp - 8]
call fcn.00414bd0
jmp 0x4165e7
mov al, byte [ebp - 0x194]
test al, al
jne 0x4165d9
lea eax, [ebp - 0x17c]
call fcn.00405a50
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 8]
call fcn.00415fd0
mov edx, dword [ebp - 0x180]
lea eax, [ebp - 0x17c]
call fcn.0040a750
push esi
mov eax, dword [ebp - 0x17c]
call fcn.00414c70
cmp eax, 0xffffffff
setg al
test al, al
je 0x4165e7
mov eax, dword [ebp - 0x184]
mov edx, dword [ebp - 8]
call fcn.00414bd0
lea eax, [ebp - 0x148]
push eax
push ebx
call sub.kernel32.dll_FindNextFileA
test eax, eax
jne 0x4164e0
push ebx
call sub.kernel32.dll_FindClose
call fcn.0040ec70
lea eax, [ebp - 0x180]
call fcn.00405a50
lea eax, [ebp - 0x17c]
call fcn.00405a50
lea eax, [ebp - 0x178]
call fcn.00405a50
lea eax, [ebp - 4]
call fcn.00405a50
lea eax, [ebp - 8]
call fcn.00405a50
pop eax
test eax, eax
je 0x416642
call fcn.0040eda0
pop edi
pop esi
pop ebx
leave
ret 0xc