Function at 0x408a5e
Capabilities:
Enumerate files on windows
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xec4
mov eax, dword [0x413004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0xebc], ecx
xor edi, edi
mov word [ebp - 0xa58], ax
push 0x208
lea eax, [ebp - 0xa56]
or ebx, 0xffffffff
push edi
push eax
mov esi, edi
call sub.msvcrt.dll_memset
xor eax, eax
push 0x208
mov word [ebp - 0x428], ax
lea eax, [ebp - 0x426]
push edi
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push 0x208
mov word [ebp - 0x638], ax
lea eax, [ebp - 0x636]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0x24
lea eax, [ebp - 0x638]
push eax
push 1
push edi
push 0x28
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x408ed2
lea eax, [ebp - 0xec0]
mov dword [ebp - 0xec0], edi
push eax
lea ecx, [ebp - 0x638]
call fcn.00406735
test eax, eax
jns 0x408b27
push eax
push 0x402388
push dword [0x4130e8]
call fcn.0040e818
add esp, 0xc
jmp 0x408ef2
xor eax, eax
mov ebx, 0x208
push ebx
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0xec4], edi
lea eax, [ebp - 0x218]
push eax
push 1
push edi
push 0x1a
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x408b6b
push eax
push 0x4023d8
jmp 0x408b14
lea eax, [ebp - 0xec4]
push eax
lea ecx, [ebp - 0x218]
call fcn.00406735
test eax, eax
jns 0x408b89
push eax
push 0x402428
jmp 0x408b14
mov eax, dword [ebp - 0xec0]
lea ecx, [ebp - 0x216]
cmp eax, dword [ebp - 0xec4]
lea ecx, [ecx + eax*2]
sbb eax, eax
and eax, ecx
je 0x408ebe
push ecx
push eax
push edi
mov edx, 0x105
lea ecx, [ebp - 0xa58]
call fcn.004067ca
push ecx
push ecx
lea ecx, [ebp - 0x638]
call fcn.004089f8
mov edi, eax
test edi, edi
je 0x408eb7
push ecx
push edi
push 0
mov edx, 0x105
lea ecx, [ebp - 0x428]
call fcn.004067ca
push edi
call dword [sym.imp.cmutil.dll_CmFree]
lea eax, [ebp - 0x428]
push eax
push 0x40255c
push dword [0x4130e8]
call fcn.0040e818
xor eax, eax
push ebx
push eax
mov word [ebp - 0x848], ax
lea eax, [ebp - 0x846]
push eax
call sub.msvcrt.dll_memset
lea eax, [ebp - 0x428]
push eax
push 0x402584
push 0x100
push 0
push 0
lea eax, [ebp - 0x848]
push 0x105
push eax
call fcn.004065c9
add esp, 0x34
test eax, eax
jns 0x408c50
movzx esi, ax
jmp 0x408ef2
lea eax, [ebp - 0x848]
push eax
push 0x402590
push dword [0x4130e8]
call fcn.0040e818
add esp, 0xc
lea eax, [ebp - 0xeb8]
push eax
lea eax, [ebp - 0x848]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x408c92
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x408ef2
test byte [ebp - 0xeb8], 0x10
je 0x408e9e
mov ecx, 0x4025b0
lea eax, [ebp - 0xe8c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x408cd0
test dx, dx
je 0x408ccc
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x408cd0
add eax, 4
add ecx, 4
test dx, dx
jne 0x408caa
xor eax, eax
jmp 0x408cd5
sbb eax, eax
or eax, 1
test eax, eax
je 0x408e9e
mov ecx, 0x4025b4
lea eax, [ebp - 0xe8c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x408d0e
test dx, dx
je 0x408d0a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x408d0e
add eax, 4
add ecx, 4
test dx, dx
jne 0x408ce8
xor eax, eax
jmp 0x408d13
sbb eax, eax
or eax, 1
test eax, eax
je 0x408e9e
lea eax, [ebp - 0xe8c]
push eax
push 0x4025bc
push dword [0x4130e8]
call fcn.0040e818
xor eax, eax
push 0x208
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call sub.msvcrt.dll_memset
push dword [ebp - 0xebc]
lea eax, [ebp - 0xa58]
push 0x4025d8
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp - 0x428]
push eax
push 0x402628
push 0x100
push 0
push 0
lea eax, [ebp - 0x218]
push 0x105
push eax
call fcn.004065c9
add esp, 0x44
test eax, eax
js 0x408dd6
lea eax, [ebp - 0x218]
push eax
push 0x402648
push dword [0x4130e8]
call fcn.0040e818
add esp, 0xc
lea ecx, [ebp - 0x218]
call fcn.0040d9fa
mov edi, eax
test edi, edi
je 0x408de8
push edi
push 0x402688
push dword [0x4130e8]
call fcn.0040e818
add esp, 0xc
mov esi, edi
jmp 0x408de8
push 0x4026e8
push dword [0x4130e8]
call fcn.0040e818
pop ecx
pop ecx
xor eax, eax
push 0x208
push eax
mov word [ebp - 0xc68], ax
lea eax, [ebp - 0xc66]
push eax
call sub.msvcrt.dll_memset
push dword [ebp - 0xebc]
lea eax, [ebp - 0xa58]
push 0x4025d8
push eax
lea eax, [ebp - 0xe8c]
push eax
lea eax, [ebp - 0x428]
push eax
push 0x402740
push 0x100
push 0
push 0
lea eax, [ebp - 0xc68]
push 0x105
push eax
call fcn.004065c9
add esp, 0x38
test eax, eax
js 0x408e8c
lea eax, [ebp - 0xc68]
push eax
push 0x402768
push dword [0x4130e8]
call fcn.0040e818
add esp, 0xc
lea ecx, [ebp - 0xc68]
call fcn.0040d9fa
mov edi, eax
test edi, edi
je 0x408e9e
push edi
push 0x4027a8
push dword [0x4130e8]
call fcn.0040e818
add esp, 0xc
mov esi, edi
jmp 0x408e9e
push 0x402808
push dword [0x4130e8]
call fcn.0040e818
pop ecx
pop ecx
lea eax, [ebp - 0xeb8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp eax, 1
je 0x408c92
jmp 0x408ee6
mov esi, 0xffff
jmp 0x408ef2
push 0x402478
push dword [0x4130e8]
call fcn.0040e818
pop ecx
pop ecx
jmp 0x408ef2
push eax
push 0x402510
push dword [0x4130e8]
call fcn.0040e818
add esp, 0xc
cmp ebx, 0xffffffff
je 0x408ef2
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00411980
mov esp, ebp
pop ebp
ret