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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x270
mov eax, dword [0x453008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x268], eax
push 0x2000
call fcn.00426af7
pop ecx
mov dword [ebp - 0x258], eax
cmp dword [ebp - 0x258], 0
jne 0x4037d8
xor eax, eax
jmp 0x403a59
push dword [ebp - 0x268]
push str._s
push 0x1000
push dword [ebp - 0x258]
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
add esp, 0x10
mov dword [ebp - 0x270], 0xa7
push 2
push 0
push 0
lea eax, [ebp - 0x254]
push eax
push 0
push dword [ebp - 0x258]
call dword [sym.imp.KERNEL32.dll_FindFirstFileExW]
mov dword [ebp - 0x264], eax
cmp dword [ebp - 0x264], 0xffffffff
jne 0x403857
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x403857
push 0
push 0
push 0
lea eax, [ebp - 0x254]
push eax
push 0
push dword [ebp - 0x258]
call dword [sym.imp.KERNEL32.dll_FindFirstFileExW]
mov dword [ebp - 0x264], eax
cmp dword [ebp - 0x264], 0xffffffff
je 0x403a4b
lea eax, [ebp - 0x228]
push eax
call fcn.0040375e
pop ecx
movzx eax, al
test eax, eax
je 0x403882
jmp 0x403a24
lea eax, [ebp - 0x228]
push eax
push dword [ebp - 0x268]
push str._s_s
push 0x1000
push dword [ebp - 0x258]
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
add esp, 0x14
mov eax, dword [ebp - 0x254]
and eax, 0x10
je 0x403917
xor eax, eax
mov word [ebp - 0x25c], ax
jmp 0x4038d0
mov ax, word [ebp - 0x25c]
add ax, 1
mov word [ebp - 0x25c], ax
movzx eax, word [ebp - 0x25c]
cmp eax, 0x28
jae 0x403907
movzx eax, word [ebp - 0x25c]
push dword [eax*4 + 0x453ad8]
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x403905
jmp 0x403a24
jmp 0x4038be
push dword [ebp - 0x258]
call fcn.00403799
jmp 0x403a24
mov eax, dword [ebp - 0x254]
and eax, dword [ebp - 0x270]
je 0x403a24
push 0x455780
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrW]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0x26c], 0
je 0x403a24
push dword [ebp - 0x26c]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
push 0x455780
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp esi, eax
jne 0x403a24
and dword [ebp - 0x260], 0
movzx eax, byte [0x45577c]
test eax, eax
je 0x403a18
push 0x1c
call fcn.00426af7
pop ecx
mov dword [ebp - 0x260], eax
cmp dword [ebp - 0x260], 0
je 0x403a18
push 7
pop ecx
xor eax, eax
mov edi, dword [ebp - 0x260]
rep stosd dword es:[edi], eax
push dword [ebp - 0x258]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
xor ecx, ecx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00426af7
pop ecx
mov ecx, dword [ebp - 0x260]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0x260]
cmp dword [eax + 0x14], 0
je 0x4039f5
push dword [ebp - 0x258]
mov eax, dword [ebp - 0x260]
push dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push dword [ebp - 0x260]
push 0
push 0
push dword [0x4559a8]
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
mov eax, dword [0x4559b4]
inc eax
mov dword [0x4559b4], eax
jmp 0x403a24
push dword [ebp - 0x258]
call fcn.0040323a
pop ecx
lea eax, [ebp - 0x254]
push eax
push dword [ebp - 0x264]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x403864
push dword [ebp - 0x264]
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [ebp - 0x258]
call fcn.00426357
pop ecx
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040850d
leave
ret 4