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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5cc
mov eax, dword [0x431004]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x598], eax
lea ecx, [ebp - 0x404]
mov dword [ebp - 0x588], ecx
mov edx, dword [ebp - 0x588]
mov dword [ebp - 0x5c4], edx
mov eax, dword [ebp - 0x598]
mov cl, byte [eax]
mov byte [ebp - 0x545], cl
mov edx, dword [ebp - 0x588]
mov al, byte [ebp - 0x545]
mov byte [edx], al
mov ecx, dword [ebp - 0x598]
add ecx, 1
mov dword [ebp - 0x598], ecx
mov edx, dword [ebp - 0x588]
add edx, 1
mov dword [ebp - 0x588], edx
cmp byte [ebp - 0x545], 0
jne 0x408d96
lea eax, [ebp - 0x404]
add eax, 0xffffffff
mov dword [ebp - 0x58c], eax
mov ecx, dword [ebp - 0x58c]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x548], dl
add dword [ebp - 0x58c], 1
cmp byte [ebp - 0x548], 0
jne 0x408de8
mov edi, dword [ebp - 0x58c]
mov eax, dword [str..]
mov dword [edi], eax
mov cl, byte [0x42ac0c]
mov byte [edi + 4], cl
lea edx, [ebp - 0x544]
push edx
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x594], eax
cmp dword [ebp - 0x594], 0xffffffff
jne 0x408e59
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.FindFirstFile_failed___d__n
call fcn.00401090
add esp, 8
jmp 0x409257
mov dword [ebp - 0x560], 0x42ac2c
lea ecx, [ebp - 0x518]
mov dword [ebp - 0x55c], ecx
mov edx, dword [ebp - 0x55c]
mov al, byte [edx]
mov byte [ebp - 0x549], al
mov ecx, dword [ebp - 0x560]
cmp al, byte [ecx]
jne 0x408ecd
cmp byte [ebp - 0x549], 0
je 0x408ec1
mov edx, dword [ebp - 0x55c]
mov al, byte [edx + 1]
mov byte [ebp - 0x54a], al
mov ecx, dword [ebp - 0x560]
cmp al, byte [ecx + 1]
jne 0x408ecd
add dword [ebp - 0x55c], 2
add dword [ebp - 0x560], 2
cmp byte [ebp - 0x54a], 0
jne 0x408e6f
mov dword [ebp - 0x5a0], 0
jmp 0x408ed8
sbb edx, edx
or edx, 1
mov dword [ebp - 0x5a0], edx
mov eax, dword [ebp - 0x5a0]
mov dword [ebp - 0x5b0], eax
cmp dword [ebp - 0x5b0], 0
je 0x408f85
mov dword [ebp - 0x568], 0x42ac30
lea ecx, [ebp - 0x518]
mov dword [ebp - 0x564], ecx
mov edx, dword [ebp - 0x564]
mov al, byte [edx]
mov byte [ebp - 0x54b], al
mov ecx, dword [ebp - 0x568]
cmp al, byte [ecx]
jne 0x408f65
cmp byte [ebp - 0x54b], 0
je 0x408f59
mov edx, dword [ebp - 0x564]
mov al, byte [edx + 1]
mov byte [ebp - 0x54c], al
mov ecx, dword [ebp - 0x568]
cmp al, byte [ecx + 1]
jne 0x408f65
add dword [ebp - 0x564], 2
add dword [ebp - 0x568], 2
cmp byte [ebp - 0x54c], 0
jne 0x408f07
mov dword [ebp - 0x5a4], 0
jmp 0x408f70
sbb edx, edx
or edx, 1
mov dword [ebp - 0x5a4], edx
mov eax, dword [ebp - 0x5a4]
mov dword [ebp - 0x5b4], eax
cmp dword [ebp - 0x5b4], 0
jne 0x408f8a
jmp 0x40922e
mov ecx, dword [ebp - 0x544]
and ecx, 0x10
je 0x4090f9
mov edx, dword [ebp + 8]
mov dword [ebp - 0x59c], edx
lea eax, [ebp - 0x404]
mov dword [ebp - 0x56c], eax
mov ecx, dword [ebp - 0x56c]
mov dword [ebp - 0x5c8], ecx
mov edx, dword [ebp - 0x59c]
mov al, byte [edx]
mov byte [ebp - 0x546], al
mov ecx, dword [ebp - 0x56c]
mov dl, byte [ebp - 0x546]
mov byte [ecx], dl
mov eax, dword [ebp - 0x59c]
add eax, 1
mov dword [ebp - 0x59c], eax
mov ecx, dword [ebp - 0x56c]
add ecx, 1
mov dword [ebp - 0x56c], ecx
cmp byte [ebp - 0x546], 0
jne 0x408fba
lea edx, [ebp - 0x404]
add edx, 0xffffffff
mov dword [ebp - 0x570], edx
mov eax, dword [ebp - 0x570]
mov cl, byte [eax + 1]
mov byte [ebp - 0x54d], cl
add dword [ebp - 0x570], 1
cmp byte [ebp - 0x54d], 0
jne 0x40900c
mov edi, dword [ebp - 0x570]
mov dx, word [0x42ac34]
mov word [edi], dx
lea eax, [ebp - 0x518]
mov dword [ebp - 0x558], eax
mov ecx, dword [ebp - 0x558]
mov dword [ebp - 0x5a8], ecx
mov edx, dword [ebp - 0x558]
mov al, byte [edx]
mov byte [ebp - 0x54e], al
add dword [ebp - 0x558], 1
cmp byte [ebp - 0x54e], 0
jne 0x409053
mov ecx, dword [ebp - 0x558]
sub ecx, dword [ebp - 0x5a8]
mov edx, dword [ebp - 0x5a8]
mov dword [ebp - 0x5b8], edx
mov dword [ebp - 0x5bc], ecx
lea eax, [ebp - 0x404]
add eax, 0xffffffff
mov dword [ebp - 0x574], eax
mov ecx, dword [ebp - 0x574]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x54f], dl
add dword [ebp - 0x574], 1
cmp byte [ebp - 0x54f], 0
jne 0x40909e
mov edi, dword [ebp - 0x574]
mov esi, dword [ebp - 0x5b8]
mov eax, dword [ebp - 0x5bc]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x404]
push eax
call fcn.00408d60
add esp, 0xc
jmp 0x40922e
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x57c], ecx
lea edx, [ebp - 0x518]
mov dword [ebp - 0x578], edx
mov eax, dword [ebp - 0x578]
mov cl, byte [eax]
mov byte [ebp - 0x550], cl
mov edx, dword [ebp - 0x57c]
cmp cl, byte [edx]
jne 0x40916c
cmp byte [ebp - 0x550], 0
je 0x409160
mov eax, dword [ebp - 0x578]
mov cl, byte [eax + 1]
mov byte [ebp - 0x551], cl
mov edx, dword [ebp - 0x57c]
cmp cl, byte [edx + 1]
jne 0x40916c
add dword [ebp - 0x578], 2
add dword [ebp - 0x57c], 2
cmp byte [ebp - 0x551], 0
jne 0x40910e
mov dword [ebp - 0x5ac], 0
jmp 0x409177
sbb eax, eax
or eax, 1
mov dword [ebp - 0x5ac], eax
mov ecx, dword [ebp - 0x5ac]
mov dword [ebp - 0x5c0], ecx
cmp dword [ebp - 0x5c0], 0
jne 0x40922e
mov edx, dword [ebp + 8]
mov dword [ebp - 0x590], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x580], eax
mov ecx, dword [ebp - 0x580]
mov dword [ebp - 0x5cc], ecx
mov edx, dword [ebp - 0x590]
mov al, byte [edx]
mov byte [ebp - 0x547], al
mov ecx, dword [ebp - 0x580]
mov dl, byte [ebp - 0x547]
mov byte [ecx], dl
mov eax, dword [ebp - 0x590]
add eax, 1
mov dword [ebp - 0x590], eax
mov ecx, dword [ebp - 0x580]
add ecx, 1
mov dword [ebp - 0x580], ecx
cmp byte [ebp - 0x547], 0
jne 0x4091ae
mov edx, dword [ebp + 0x10]
add edx, 0xffffffff
mov dword [ebp - 0x584], edx
mov eax, dword [ebp - 0x584]
mov cl, byte [eax + 1]
mov byte [ebp - 0x552], cl
add dword [ebp - 0x584], 1
cmp byte [ebp - 0x552], 0
jne 0x4091fd
mov edi, dword [ebp - 0x584]
mov dx, word [0x42ac38]
mov word [edi], dx
jmp 0x409257
lea eax, [ebp - 0x544]
push eax
mov ecx, dword [ebp - 0x594]
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x408e59
mov edx, dword [ebp - 0x594]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040b794
mov esp, ebp
pop ebp
ret