Function at 0x401620
Capabilities:
Enumerate files on windows
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x490
push ebx
push esi
push edi
lea edi, [ebp - 0x490]
mov ecx, 0x124
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x478b40]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x48], 0
mov byte [ebp - 0xc8], 0
mov byte [ebp - 0x3c], 0
mov esi, esp
lea eax, [ebp - 0x214]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp esi, esp
call fcn.0040b060
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
jne 0x4016d8
mov dword [ebp - 0xcc], 1
push 0x463c76
lea eax, [ebp - 0xc8]
push eax
call fcn.0040abc0
add esp, 8
mov dword [ebp - 0x18], 1
push 0
push 0
push 0xb8
lea eax, [ebp - 0xcc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401212
jmp 0x4018b1
push 0x160
push 0
lea eax, [ebp - 0x37c]
push eax
call fcn.0040b300
add esp, 0xc
mov esi, esp
push 0x510
push 0x160
lea eax, [ebp - 0x37c]
push eax
push 0x80
lea ecx, [ebp - 0x1e8]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
cmp esi, esp
call fcn.0040b060
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [ebp - 0xc8]
push ecx
call fcn.0040abc0
add esp, 8
mov eax, dword [ebp - 0x214]
and eax, 0x10
je 0x401744
mov dword [ebp - 0x1c], 1
jmp 0x40174b
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x1f8]
imul eax, eax, 0xffffffff
add eax, dword [ebp - 0x1f4]
shr eax, 0xa
add eax, 1
mov dword [ebp - 0x48], eax
mov esi, esp
lea eax, [ebp - 0x3cc]
push eax
lea ecx, [ebp - 0x200]
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
cmp esi, esp
call fcn.0040b060
mov esi, esp
lea eax, [ebp - 0x3bc]
push eax
lea ecx, [ebp - 0x3cc]
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
cmp esi, esp
call fcn.0040b060
movzx eax, word [ebp - 0x3b0]
push eax
movzx ecx, word [ebp - 0x3b2]
push ecx
movzx edx, word [ebp - 0x3b4]
push edx
movzx eax, word [ebp - 0x3b6]
push eax
movzx ecx, word [ebp - 0x3ba]
push ecx
movzx edx, word [ebp - 0x3bc]
push edx
push str._4d__02d__02d__02d:_02d:_02d
lea eax, [ebp - 0x3a4]
push eax
call fcn.0040acc0
add esp, 0x20
lea eax, [ebp - 0x3a4]
push eax
lea ecx, [ebp - 0x3c]
push ecx
call fcn.0040abc0
add esp, 8
mov dword [ebp - 0x18], 1
push 0x463c50
lea eax, [ebp - 0x1e8]
push eax
call fcn.0040b270
add esp, 8
test eax, eax
je 0x40182b
push 0x463c4c
lea eax, [ebp - 0x1e8]
push eax
call fcn.0040b270
add esp, 8
test eax, eax
jne 0x40182d
jmp 0x40185c
push 0
push 0
push 0xb8
lea eax, [ebp - 0xcc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401212
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0040b060
cmp eax, 0x12
jne 0x40185c
jmp 0x40187e
mov esi, esp
lea eax, [ebp - 0x214]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
cmp esi, esp
call fcn.0040b060
test eax, eax
jne 0x4016d8
mov dword [ebp - 0x18], 0
push 0
push 0
push 0xb8
lea eax, [ebp - 0xcc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401212
mov esi, esp
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp esi, esp
call fcn.0040b060
push edx
mov ecx, ebp
push eax
lea edx, [0x4018e4]
call fcn.0040b090
pop eax
pop edx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040b050
add esp, 0x490
cmp ebp, esp
call fcn.0040b060
mov esp, ebp
pop ebp
ret 8