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

Disassembly:
push ebp
lea ebp, [esp - 0x5f4]
sub esp, 0x674
mov eax, dword [0x426d40]
xor eax, ebp
mov dword [ebp + 0x5f0], eax
mov eax, dword [ebp + 0x5fc]
mov ecx, dword [ebp + 0x600]
push ebx
push esi
push edi
push eax
push 0x41f1b0
mov esi, 0x104
lea edi, [ebp + 0x1e0]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ecx
xor ebx, ebx
call fcn.00401933
mov eax, edi
push eax
call fcn.004019f4
add esp, 0xc
lea ecx, [ebp - 0x70]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x80], eax
cmp eax, 0xffffffff
je 0x403ac7
mov ecx, 0x41e63c
lea eax, [ebp - 0x44]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403932
test dx, dx
je 0x40392e
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403932
add eax, 4
add ecx, 4
test dx, dx
jne 0x40390c
xor eax, eax
jmp 0x403937
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x403a36
mov ecx, 0x41e580
lea eax, [ebp - 0x44]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40396d
test dx, dx
je 0x403969
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40396d
add eax, 4
add ecx, 4
test dx, dx
jne 0x403947
xor eax, eax
jmp 0x403972
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x403a36
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x78]
mov esi, 0x104
push 0x41f1a4
lea edi, [ebp + 0x3e8]
call fcn.00401933
add esp, 0xc
test byte [ebp - 0x70], 0x10
mov eax, edi
push eax
je 0x4039de
push 0x41f19c
call fcn.00401933
push dword [ebp - 0x74]
mov eax, edi
push eax
call fcn.0040389a
mov esi, eax
add esp, 0x10
test esi, esi
je 0x403a36
push esi
mov eax, edi
push eax
push 0x41f178
call fcn.00402262
push eax
call fcn.004070f3
add esp, 0x10
mov eax, esi
jmp 0x403ac9
call fcn.00401a9b
xor esi, esi
pop ecx
mov dword [ebp - 0x7c], eax
cmp eax, esi
je 0x403aae
push 0x14
call fcn.0040d60d
pop ecx
cmp eax, esi
je 0x403a17
mov dword [eax + 4], 1
mov dword [eax + 8], esi
mov dword [eax], 0x41e370
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov edi, eax
jmp 0x403a19
xor edi, edi
push dword [ebp - 0x7c]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ebx, eax
cmp ebx, esi
jne 0x403ab3
mov ecx, dword [ebp - 0x74]
push edi
call fcn.00402127
lea eax, [ebp - 0x70]
push eax
push dword [ebp - 0x80]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x403904
push dword [ebp - 0x80]
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [ebp - 0x78]
call fcn.00401a9b
mov edi, eax
xor esi, esi
pop ecx
cmp edi, esi
je 0x403aae
push 0x14
call fcn.0040d60d
pop ecx
cmp eax, esi
je 0x403a89
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov dword [eax + 4], 1
mov dword [eax], 0x41e384
mov esi, eax
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 4]
mov ebx, eax
test ebx, ebx
je 0x403abe
push ebx
push edi
push 0x41f144
call fcn.00402262
push eax
call fcn.004070f3
add esp, 0x10
jmp 0x403ac7
push 5
pop eax
jmp 0x403ac9
push ebx
push dword [ebp - 0x7c]
push 0x41f110
jmp 0x403a9e
mov ecx, dword [ebp - 0x74]
push esi
call fcn.00402127
mov eax, ebx
mov ecx, dword [ebp + 0x5f0]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040b774
add ebp, 0x5f4
leave
ret