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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1564
call fcn.0041ef90
push ebx
push esi
push edi
lea edi, [ebp - 0xf64]
mov ecx, 0x3d9
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x45e034]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, 0xae703a
call fcn.0041ea00
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x450], 0
push 4
push 0xae4fc8
lea eax, [ebp - 0x450]
push eax
call fcn.00420a00
add esp, 0xc
cmp dword [ebp + 8], 0
jne 0x41b920
mov esi, esp
push 0
push 0x16
lea eax, [ebp - 0x210]
push eax
mov ecx, dword [0x45ed14]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp esi, esp
call fcn.0041e9d0
test eax, eax
je 0x41b91e
push str.Programs
push 0x104
lea eax, [ebp - 0x210]
push eax
call fcn.004254c0
add esp, 0xc
jmp 0x41b938
mov eax, dword [ebp + 8]
push eax
push 0x104
lea ecx, [ebp - 0x210]
push ecx
call fcn.00425800
add esp, 0xc
push 0x44c49c
push 0x104
lea eax, [ebp - 0x210]
push eax
call fcn.004254c0
add esp, 0xc
lea eax, [ebp - 0x210]
push eax
push 0x104
lea ecx, [ebp - 0x420]
push ecx
call fcn.00425800
add esp, 0xc
push 0x44c4a0
push 0x104
lea eax, [ebp - 0x420]
push eax
call fcn.004254c0
add esp, 0xc
lea eax, [ebp - 0x210]
mov dword [ebp - 0x42c], eax
push 0x250
call fcn.0041e6d0
add esp, 4
mov dword [ebp - 0x1554], eax
mov eax, dword [ebp - 0x1554]
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x468], 0
mov esi, esp
mov eax, dword [ebp - 0x45c]
push eax
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp esi, esp
call fcn.0041e9d0
mov dword [ebp - 0x468], eax
cmp dword [ebp - 0x468], 0
je 0x41bcb8
push 0x44c4a8
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
call fcn.00425f00
add esp, 8
test eax, eax
je 0x41bb35
push 0x44c4ac
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
call fcn.00425f00
add esp, 8
test eax, eax
je 0x41bb35
push str.desktop.ini
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
call fcn.00425f00
add esp, 8
test eax, eax
je 0x41bb35
mov eax, dword [ebp - 0x45c]
mov ecx, dword [eax]
and ecx, 0x10
je 0x41baa1
lea eax, [ebp - 0x210]
push eax
push 0x104
lea ecx, [ebp - 0x678]
push ecx
call fcn.00425800
add esp, 0xc
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
push 0x104
lea ecx, [ebp - 0x678]
push ecx
call fcn.004254c0
add esp, 0xc
lea eax, [ebp - 0x678]
push eax
call fcn.0041b870
add esp, 4
jmp 0x41bb35
lea eax, [ebp - 0x210]
push eax
push 0x104
push 0x6d4dc0
call fcn.00425800
add esp, 0xc
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
push 0x104
push 0x6d4dc0
call fcn.004254c0
add esp, 0xc
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
imul ecx, dword [0xae4fc8], 0x208
add ecx, 0x7d8fc8
push ecx
call fcn.004010a0
add esp, 8
mov dword [ebp - 0x438], 0x104
push 0x6d4dc0
mov eax, dword [ebp - 0x438]
push eax
imul ecx, dword [0xae4fc8], 0x208
add ecx, 0x6d4fc8
push ecx
call fcn.00425800
add esp, 0xc
mov eax, dword [0xae4fc8]
add eax, 1
mov dword [0xae4fc8], eax
mov esi, esp
mov eax, dword [ebp - 0x45c]
push eax
mov ecx, dword [ebp - 0x468]
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp esi, esp
call fcn.0041e9d0
test eax, eax
je 0x41bcb8
push 0x44c4a8
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
call fcn.00425f00
add esp, 8
test eax, eax
je 0x41bcb3
push 0x44c4ac
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
call fcn.00425f00
add esp, 8
test eax, eax
je 0x41bcb3
push str.desktop.ini
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
call fcn.00425f00
add esp, 8
test eax, eax
je 0x41bcb3
mov eax, dword [ebp - 0x45c]
mov ecx, dword [eax]
and ecx, 0x10
je 0x41bc11
lea eax, [ebp - 0x210]
push eax
push 0x104
lea ecx, [ebp - 0x888]
push ecx
call fcn.00425800
add esp, 0xc
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
push 0x104
lea ecx, [ebp - 0x888]
push ecx
call fcn.004254c0
add esp, 0xc
lea eax, [ebp - 0x888]
push eax
call fcn.0041b870
add esp, 4
jmp 0x41bcb3
lea eax, [ebp - 0x210]
push eax
push 0x104
push 0x6d4dc0
call fcn.00425800
add esp, 0xc
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
push 0x104
push 0x6d4dc0
call fcn.004254c0
add esp, 0xc
mov eax, dword [ebp - 0x45c]
add eax, 0x2c
push eax
imul ecx, dword [0xae4fc8], 0x208
add ecx, 0x7d8fc8
push ecx
call fcn.004010a0
add esp, 8
mov dword [ebp - 0x438], 0x104
push 0x6d4dc0
mov eax, dword [ebp - 0x438]
push eax
imul ecx, dword [0xae4fc8], 0x208
add ecx, 0x6d4fc8
push ecx
call fcn.00425800
add esp, 0xc
mov eax, dword [0xae4fc8]
add eax, 1
mov dword [0xae4fc8], eax
cmp dword [0xae4fc8], 0x800
jne 0x41bcb3
jmp 0x41bcb8
jmp 0x41bb35
mov esi, esp
mov eax, dword [ebp - 0x468]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp esi, esp
call fcn.0041e9d0
mov dword [ebp - 0x894], 0x80004005
mov dword [ebp - 0x8a0], 0x400
mov eax, dword [ebp - 0x450]
cmp eax, dword [0xae4fc8]
jge 0x41bf0d
mov dword [ebp - 0xd14], 0
mov esi, esp
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
cmp esi, esp
call fcn.0041e9d0
mov esi, esp
lea eax, [ebp - 0xf30]
push eax
push 0x44d734
push 1
push 0
push 0x44d754
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp esi, esp
call fcn.0041e9d0
mov dword [ebp - 0xd14], eax
cmp dword [ebp - 0xd14], 0
jl 0x41beea
mov esi, esp
lea eax, [ebp - 0xf3c]
push eax
push 0x44d6f4
mov ecx, dword [ebp - 0xf30]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xf30]
push eax
mov ecx, dword [edx]
call ecx
cmp esi, esp
call fcn.0041e9d0
mov dword [ebp - 0xd14], eax
cmp dword [ebp - 0xd14], 0
jl 0x41beea
mov dword [ebp - 0xf48], 0
jmp 0x41bd9c
mov eax, dword [ebp - 0xf48]
add eax, 1
mov dword [ebp - 0xf48], eax
cmp dword [ebp - 0xf48], 0x104
jge 0x41bddb
mov eax, dword [ebp - 0xf48]
shl eax, 1
mov dword [ebp - 0x1560], eax
cmp dword [ebp - 0x1560], 0x208
jae 0x41bdc4
jmp 0x41bdc9
call fcn.0041e880
xor ecx, ecx
mov edx, dword [ebp - 0x1560]
mov word [ebp + edx - 0xf24], cx
jmp 0x41bd8d
imul eax, dword [ebp - 0x450], 0x208
add eax, 0x6d4fc8
push eax
push 0x104
lea ecx, [ebp - 0xf24]
push ecx
call fcn.00425800
add esp, 0xc
mov esi, esp
push 0
lea eax, [ebp - 0xf24]
push eax
mov ecx, dword [ebp - 0xf3c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xf3c]
push eax
mov ecx, dword [edx + 0x14]
call ecx
cmp esi, esp
call fcn.0041e9d0
mov dword [ebp - 0xd14], eax
cmp dword [ebp - 0xd14], 0
jl 0x41beea
mov esi, esp
push 0
mov eax, dword [0x45ed14]
push eax
mov ecx, dword [ebp - 0xf30]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xf30]
push eax
mov ecx, dword [edx + 0x4c]
call ecx
cmp esi, esp
call fcn.0041e9d0
mov dword [ebp - 0xd14], eax
cmp dword [ebp - 0xd14], 0
jl 0x41beea
mov esi, esp
push 1
lea eax, [ebp - 0xd08]
push eax
push 0x104
lea ecx, [ebp - 0xab0]
push ecx
mov edx, dword [ebp - 0xf30]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xf30]
push ecx
mov edx, dword [eax + 0xc]
call edx
cmp esi, esp
call fcn.0041e9d0
mov dword [ebp - 0xd14], eax
cmp dword [ebp - 0xd14], 0
jl 0x41beea
cmp dword [ebp - 0x450], 0x800
jge 0x41beea
mov dword [ebp - 0x444], 0x104
lea eax, [ebp - 0xab0]
push eax
mov ecx, dword [ebp - 0x444]
push ecx
imul edx, dword [ebp - 0x450], 0x208
add edx, 0x8dcfc8
push edx
call fcn.00425800
add esp, 0xc
mov eax, dword [ebp - 0x450]
add eax, 1
mov dword [ebp - 0x450], eax
mov esi, esp
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp esi, esp
call fcn.0041e9d0
jmp 0x41bce2
push edx
mov ecx, ebp
push eax
lea edx, [0x41bf3c]
call fcn.0041e970
pop eax
pop edx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041ea40
add esp, 0x1564
cmp ebp, esp
call fcn.0041e9d0
mov esp, ebp
pop ebp
ret