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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38c
mov eax, dword [0x49f2a0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0xc]
push ebx
xor ebx, ebx
inc dword [0x4a3d28]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x380], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x38c], edi
mov dword [ebp - 0x384], ecx
mov dword [ebp - 0x388], eax
mov dword [ebp - 0x378], ebx
cmp dword [0x4d659c], ebx
je 0x413978
xor eax, eax
jmp 0x413cbc
mov eax, edi
push esi
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x41397e
sub eax, esi
je 0x4139bf
mov eax, edi
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x41398e
sub eax, esi
cmp byte [eax + edi - 1], 0x5c
jne 0x4139bf
push ecx
push edi
push 0x46aaa0
mov esi, 0x107
lea eax, [ebp - 0x11c]
push esi
push eax
call fcn.00450d91
push edi
push 0x46b784
jmp 0x4139de
push ecx
push edi
push 0x4696e0
mov esi, 0x107
lea eax, [ebp - 0x11c]
push esi
push eax
call fcn.00450d91
push edi
push 0x46b77c
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.00450d91
add esp, 0x24
cmp dword [ebp + 0x14], ebx
je 0x413a4f
call dword [sym.imp.___total_physical_size__lu_MB_GetTickCount]
mov ecx, eax
sub ecx, dword [0x4a3d24]
cmp ecx, dword [ebp + 0x14]
jle 0x413a4f
mov dword [0x4a3d24], eax
lea eax, [ebp - 0x11c]
push eax
push str.Scanning__.60s
call fcn.00450f5c
mov esi, eax
mov eax, dword [0x4a3d20]
pop ecx
pop ecx
cmp esi, eax
jg 0x413a3e
push 0x469fcc
sub eax, esi
push eax
push 0x46b768
call fcn.00450f5c
add esp, 0xc
push 0x46b764
call fcn.00450f5c
pop ecx
mov dword [0x4a3d20], esi
mov ebx, dword [sym.imp.___total_physical_size__lu_MB_FindFirstFileA]
lea eax, [ebp - 0x374]
push eax
lea eax, [ebp - 0x234]
push eax
call ebx
mov dword [ebp - 0x37c], eax
cmp eax, 0xffffffff
je 0x413ba1
push 2
mov edi, 0x46ab5c
lea esi, [ebp - 0x348]
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x413b74
push 3
mov edi, 0x46b760
lea esi, [ebp - 0x348]
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x413b74
test byte [ebp - 0x374], 0x10
je 0x413b74
test dword [ebp - 0x374], 0x400
jne 0x413b74
test byte [0x4cdde0], 2
je 0x413af1
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x348]
push eax
push dword [ebp - 0x374]
push dword [0x4a3d28]
push str._4u:_0x_x_push_dir__s__dirbuf_s__n
call fcn.0041c7ee
add esp, 0x14
cmp dword [0x4a3d28], 0x64
jbe 0x413b1f
push 0x64
lea eax, [ebp - 0x234]
push eax
push dword [ebp - 0x374]
lea eax, [ebp - 0x348]
push eax
push str.Warning:_Directory_depth_for__s___4u__in__dirbuf:_s__greater_than__d._Snapshot_doesnt_exclude_files_below_this_directory.
call fcn.0041c7ee
add esp, 0x14
jmp 0x413b74
push 1
push 8
call fcn.00450903
mov esi, eax
lea eax, [ebp - 0x348]
push eax
call fcn.004503c5
add esp, 0xc
mov dword [esi], eax
lea eax, [ebp - 0x348]
push eax
push dword [ebp - 0x384]
call fcn.0041d338
test eax, eax
je 0x413b58
push 0x46b6b8
jmp 0x413b5e
push dword [ebp - 0x384]
call fcn.004503c5
pop ecx
mov dword [esi + 4], eax
push esi
lea eax, [ebp - 0x378]
push eax
call fcn.0043c081
lea eax, [ebp - 0x374]
push eax
push dword [ebp - 0x37c]
call dword [sym.imp.___total_physical_size__lu_MB_FindNextFileA]
test eax, eax
jne 0x413a74
push dword [ebp - 0x37c]
call dword [sym.imp.___total_physical_size__lu_MB_FindClose]
mov edi, dword [ebp - 0x38c]
lea eax, [ebp - 0x374]
push eax
lea eax, [ebp - 0x11c]
push eax
call ebx
mov esi, eax
cmp esi, 0xffffffff
je 0x413bfa
test byte [ebp - 0x374], 0x10
je 0x413bcd
test dword [ebp - 0x374], 0x400
je 0x413be1
push dword [ebp - 0x388]
lea eax, [ebp - 0x374]
push edi
push eax
call dword [ebp - 0x380]
lea eax, [ebp - 0x374]
push eax
push esi
call dword [sym.imp.___total_physical_size__lu_MB_FindNextFileA]
test eax, eax
jne 0x413bb8
push esi
call dword [sym.imp.___total_physical_size__lu_MB_FindClose]
lea eax, [ebp - 0x378]
push eax
call fcn.0043c0ea
jmp 0x413c9d
lea eax, [ebp - 0x378]
push eax
call fcn.0043c0b7
mov esi, eax
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x413c1e
sub eax, edx
je 0x413c48
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x413c2e
sub eax, edx
cmp byte [eax + edi - 1], 0x5c
jne 0x413c48
push dword [esi]
push edi
push 0x46aaa0
jmp 0x413c50
push dword [esi]
push edi
push 0x4696e0
lea eax, [ebp - 0x11c]
push 0x107
push eax
call fcn.00450d91
add esp, 0x14
push dword [ebp - 0x388]
lea eax, [ebp - 0x11c]
push dword [ebp - 0x380]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [esi + 4]
push eax
call fcn.00413922
push dword [esi]
call fcn.0045038b
push dword [esi + 4]
call fcn.0045038b
push esi
call fcn.0045038b
add esp, 0xc
cmp dword [ebp - 0x378], 0
jne 0x413c0b
dec dword [0x4a3d28]
xor eax, eax
cmp dword [0x4d659c], eax
pop esi
sete al
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.00450b32
leave
ret 0x18