Function at 0x408250
Capabilities:
Enumerate files on windows
Get disk information
Get file attributes
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xb10
push ebx
push ebp
push esi
push edi
push 1
mov dword [esp + 0x28], ecx
call sub.MFC42.DLL_CWnd::UpdateData
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x3d]
mov byte [esp + 0x3c], 0
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
xor eax, eax
mov ecx, 0x1a
mov dword [esp + 0x15], eax
lea edi, [esp + 0x335]
mov dword [esp + 0x19], eax
mov byte [esp + 0x14], 0
mov byte [esp + 0x1d], al
mov byte [esp + 0x334], al
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x334]
push ecx
push 0x6a
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x71]
mov byte [esp + 0x70], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ebx, [esp + 0x334]
stosb byte es:[edi], al
mov al, byte [ebx + 1]
test al, al
jne 0x4082df
mov al, byte [ebx + 2]
test al, al
je 0x4085d9
push ebx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 3
jne 0x4085d1
movsx edx, byte [ebx]
push edx
lea eax, [esp + 0x74]
push str._c:JdvrFile
push eax
mov byte [ebx + 1], 0
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea ecx, [esp + 0x70]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 0x10
je 0x4085d1
lea edi, [esp + 0x70]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [str.2_______]
repne scasb al, byte es:[edi]
mov eax, dword [0x4134e0]
dec edi
mov cx, word [0x4134e4]
mov dword [edi], edx
lea edx, [esp + 0x1f4]
push edx
mov dword [edi + 4], eax
lea eax, [esp + 0x74]
push eax
mov word [edi + 8], cx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x4085d1
test byte [esp + 0x1f4], 0x10
je 0x40847a
movsx edx, byte [ebx]
lea ecx, [esp + 0x220]
lea eax, [esp + 0x14]
push ecx
push edx
push str._c_s
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea esi, [esp + 0x15]
lea eax, [esp + 0x65]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4083bd
test cl, cl
je 0x4083b9
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4083bd
add eax, 2
add esi, 2
test cl, cl
jne 0x408399
xor eax, eax
jmp 0x4083c2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jge 0x40847a
xor ebp, ebp
lea edi, [esp + 0x3d]
mov al, byte [edi - 1]
test al, al
je 0x408415
lea esi, [esp + 0x15]
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x408401
test cl, cl
je 0x4083fd
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x408401
add eax, 2
add esi, 2
test cl, cl
jne 0x4083dd
xor eax, eax
jmp 0x408406
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jl 0x408435
inc ebp
add edi, 0xa
cmp ebp, 5
jl 0x4083d0
jmp 0x40847a
lea ecx, [ebp + ebp*4]
lea edx, [esp + 0x14]
add ecx, ecx
lea eax, [esp + 0x14]
sub ecx, edx
lea edx, [esp + ecx + 0x3c]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x408429
jmp 0x40847a
cmp ebp, 4
jge 0x40845c
mov edi, 4
lea esi, [esp + 0x5a]
sub edi, ebp
mov eax, esi
mov edx, 0xa
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40844c
sub esi, 0xa
dec edi
jne 0x408445
lea ecx, [ebp + ebp*4]
lea edx, [esp + 0x14]
add ecx, ecx
lea eax, [esp + 0x14]
sub ecx, edx
lea edx, [esp + ecx + 0x3c]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x408470
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x1f4]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x4085c6
test byte [esp + 0x1f4], 0x10
je 0x4085ab
movsx eax, byte [ebx]
lea edx, [esp + 0x220]
lea ecx, [esp + 0x14]
push edx
push eax
push str._c_s
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea esi, [esp + 0x15]
lea eax, [esp + 0x65]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4084ee
test cl, cl
je 0x4084ea
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4084ee
add eax, 2
add esi, 2
test cl, cl
jne 0x4084ca
xor eax, eax
jmp 0x4084f3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jge 0x4085ab
xor ebp, ebp
lea edi, [esp + 0x3d]
mov al, byte [edi - 1]
test al, al
je 0x408546
lea esi, [esp + 0x15]
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x408532
test cl, cl
je 0x40852e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x408532
add eax, 2
add esi, 2
test cl, cl
jne 0x40850e
xor eax, eax
jmp 0x408537
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jl 0x408566
inc ebp
add edi, 0xa
cmp ebp, 5
jl 0x408501
jmp 0x4085ab
lea ecx, [ebp + ebp*4]
lea edx, [esp + 0x14]
add ecx, ecx
lea eax, [esp + 0x14]
sub ecx, edx
lea edx, [esp + ecx + 0x3c]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40855a
jmp 0x4085ab
cmp ebp, 4
jge 0x40858d
mov edi, 4
lea esi, [esp + 0x5a]
sub edi, ebp
mov eax, esi
mov edx, 0xa
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40857d
sub esi, 0xa
dec edi
jne 0x408576
lea ecx, [ebp + ebp*4]
lea edx, [esp + 0x14]
add ecx, ecx
lea eax, [esp + 0x14]
sub ecx, edx
lea edx, [esp + ecx + 0x3c]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4085a1
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x1f4]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x408495
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
add ebx, 4
jmp 0x4082cd
mov ecx, 0x1df
xor eax, eax
lea edi, [esp + 0x3a1]
mov byte [esp + 0x3a0], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x1f
xor eax, eax
lea edi, [esp + 0x178]
mov dword [esp + 0x174], 0
rep stosd dword es:[edi], eax
mov cl, byte [esp + eax + 0x3c]
mov byte [esp + eax + 0x14], cl
inc eax
test cl, cl
jne 0x40860f
mov dword [esp + 0x20], 0
lea ebp, [esp + 0x3d]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov esi, ebp
lea eax, [esp + 0x15]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x40865c
test cl, cl
je 0x408658
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40865c
add eax, 2
add esi, 2
test cl, cl
jne 0x408634
xor eax, eax
jmp 0x408661
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jg 0x408914
mov al, byte [esp + 0xae4]
test al, al
je 0x4086af
mov esi, ebp
lea eax, [esp + 0x15]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x4086a2
test cl, cl
je 0x40869e
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x4086a2
add eax, 2
add esi, 2
test cl, cl
jne 0x40867a
xor eax, eax
jmp 0x4086a7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408914
mov esi, dword [esp + 0x24]
push 0
push 0
push 0x147
mov eax, dword [esi + 0x148]
push eax
call edi
test eax, eax
jne 0x4086e4
movsx ecx, byte [ebp - 1]
push ebp
push ecx
lea edx, [esp + 0x78]
push str._c:JdvrFile_s.801
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
jmp 0x408710
mov eax, dword [esi + 0x148]
push 0
push 0
push 0x147
push eax
call edi
movsx ecx, byte [ebp - 1]
push eax
push ebp
push ecx
lea edx, [esp + 0x7c]
push str._c:JdvrFile_s_02d.801
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
lea eax, [esp + 0x1f4]
lea ecx, [esp + 0x70]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [esp + 0x10], ebx
je 0x4088f9
lea edx, [esp + 0x222]
push 6
lea eax, [esp + 0xaea]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jge 0x4087fb
xor esi, esi
lea edi, [esp + 0x3a2]
mov al, byte [edi - 2]
test al, al
je 0x4087c3
lea ecx, [esp + 0x222]
push 6
push ecx
push edi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jl 0x408788
inc esi
add edi, 0x3c
cmp esi, 0x20
jl 0x40875e
jmp 0x4087fb
mov edi, 0x1f
cmp esi, edi
jge 0x4087c3
lea ebx, [esp + 0xaa8]
mov eax, ebx
mov edx, 0x3c
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40879f
mov ecx, dword [esp + edi*4 + 0x170]
sub ebx, 0x3c
mov dword [esp + edi*4 + 0x174], ecx
dec edi
cmp edi, esi
jg 0x408798
mov ebx, dword [esp + 0x10]
movsx edx, byte [ebp - 1]
push ebp
lea eax, [esp + 0x224]
push edx
push eax
lea eax, [esi + esi*2]
push str._s_c_s
lea ecx, [eax + eax*4]
lea edx, [esp + ecx*4 + 0x3b0]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [esp + 0x228]
add esp, 0x14
mov dword [esp + esi*4 + 0x174], eax
lea ecx, [esp + 0x1f4]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x4088f2
lea edx, [esp + 0x222]
push 6
lea eax, [esp + 0xaea]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jge 0x4088db
xor esi, esi
lea edi, [esp + 0x3a2]
mov al, byte [edi - 2]
test al, al
je 0x4088a3
lea ecx, [esp + 0x222]
push 6
push ecx
push edi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jl 0x408868
inc esi
add edi, 0x3c
cmp esi, 0x20
jl 0x40883e
jmp 0x4088db
mov edi, 0x1f
cmp esi, edi
jge 0x4088a3
lea ebx, [esp + 0xaa8]
mov eax, ebx
mov edx, 0x3c
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40887f
mov ecx, dword [esp + edi*4 + 0x170]
sub ebx, 0x3c
mov dword [esp + edi*4 + 0x174], ecx
dec edi
cmp edi, esi
jg 0x408878
mov ebx, dword [esp + 0x10]
movsx edx, byte [ebp - 1]
push ebp
lea eax, [esp + 0x224]
push edx
push eax
lea eax, [esi + esi*2]
push str._s_c_s
lea ecx, [eax + eax*4]
lea edx, [esp + ecx*4 + 0x3b0]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [esp + 0x228]
add esp, 0x14
mov dword [esp + esi*4 + 0x174], eax
lea ecx, [esp + 0x1f4]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x408812
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x20]
add ebp, 0xa
inc eax
cmp eax, 5
mov dword [esp + 0x20], eax
jl 0x408628
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [esp + 0x24]
xor esi, esi
push esi
push esi
mov eax, dword [edx + 0x188]
push 0x1009
push eax
call edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x10]
lea esi, [esp + ecx + 0x3a3]
lea eax, [esi - 3]
mov dword [esp + 0x38], eax
mov al, byte [eax]
test al, al
je 0x408b07
mov edi, dword [esp + 0x20]
mov dl, byte [esi - 2]
mov byte [esp + 0x70], al
mov eax, dword [esp + 0x24]
push 0
push 0
push 0
lea ecx, [esp + 0x7c]
push 0
lea ebp, [eax + 0x168]
push ecx
push edi
push 1
mov ecx, ebp
mov byte [esp + 0x8d], dl
mov byte [esp + 0x8e], 0
call sub.MFC42.DLL_CListCtrl::InsertItem
mov dl, byte [esi - 1]
mov cl, byte [esi + 1]
mov byte [esp + 0x70], dl
mov dl, byte [esi + 2]
mov ebx, eax
mov al, byte [esi]
mov byte [esp + 0x74], dl
mov byte [esp + 0x73], cl
mov cl, byte [esi + 4]
lea edx, [esp + 0x70]
mov byte [esp + 0x71], al
mov al, byte [esi + 3]
push edx
mov byte [esp + 0x7b], cl
push 1
push ebx
mov ecx, ebp
mov byte [esp + 0x7e], 0x3a
mov byte [esp + 0x81], 0x3a
mov byte [esp + 0x82], al
mov byte [esp + 0x84], 0
call sub.MFC42.DLL_CListCtrl::SetItemText
mov eax, dword [esp + edi*4 + 0x174]
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
push eax
lea eax, [esp + 0x74]
push 0x413374
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea ecx, [esp + 0x70]
push ecx
push 2
push ebx
mov ecx, ebp
call sub.MFC42.DLL_CListCtrl::SetItemText
xor ecx, ecx
xor eax, eax
mov byte [esp + 0x28], 0
mov byte [esp + 0x31], cl
mov dword [esp + 0x29], ecx
mov dword [esp + 0x2d], ecx
mov dword [esp + 0x34], eax
cmp byte [esi + eax - 3], 0x2e
jne 0x408a45
cmp byte [esi + eax - 2], 0x38
jne 0x408a45
cmp byte [esi + eax - 1], 0x30
jne 0x408a45
cmp byte [esi + eax], 0x31
je 0x408a4d
inc eax
cmp eax, 0x32
jl 0x408a2a
jmp 0x408a7e
mov edx, dword [esp + 0x10]
add edx, eax
add eax, 4
mov dword [esp + 0x34], eax
mov cl, byte [esp + edx + 0x3a4]
mov esi, dword [esp + edx + 0x3a5]
lea edx, [esp + edx + 0x3a5]
mov byte [esp + 0x31], cl
mov dword [esp + 0x28], esi
mov edx, dword [edx + 4]
mov dword [esp + 0x2c], edx
movsx eax, cl
push eax
lea ecx, [esp + 0x74]
push str._c:JdvrFile_
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov esi, dword [sym.imp.MSVCRT.dll_strncat]
lea edx, [esp + 0x34]
push 8
lea eax, [esp + 0x80]
push edx
push eax
call esi
lea edi, [esp + 0x88]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x4c]
repne scasb al, byte es:[edi]
mov cx, word [0x413494]
mov eax, dword [esp + 0x50]
mov word [edi - 1], cx
push edx
lea ecx, [esp + 0x8c]
push eax
push ecx
call esi
add esp, 0x24
lea edx, [esp + 0x70]
mov ecx, ebp
push edx
push 3
push ebx
call sub.MFC42.DLL_CListCtrl::SetItemText
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
add eax, 0x3c
inc esi
cmp eax, 0x780
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], eax
jl 0x408932
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb10
ret