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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10004c27
mov eax, dword fs:[0]
push eax
sub esp, 0x284
mov eax, dword [0x1000701c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x290]
push eax
xor bl, bl
call fcn.10002e40
lea ecx, [ebp - 0x134]
mov dword [ebp - 4], 0
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
push 0x104
lea ecx, [ebp - 0x118]
push ecx
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea edx, [ebp - 0x118]
push edx
lea ecx, [ebp - 0x134]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const__]
push 0x100051f4
lea ecx, [ebp - 0x134]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const__]
push 6
lea ecx, [ebp - 0x290]
call fcn.10001f60
push eax
lea ecx, [ebp - 0x134]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const__]
cmp dword [ebp - 0x11c], 0x10
mov eax, dword [ebp - 0x130]
jae 0x100045f8
lea eax, [ebp - 0x130]
lea ecx, [ebp - 0x278]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x10004633
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea edx, [ebp - 0x290]
push edx
mov dword [ebp - 4], esi
call fcn.10001130
xor al, al
jmp 0x100047dd
mov edi, dword [sym.imp.KERNEL32.dll_FindNextFileA]
lea eax, [ebp - 0x278]
push eax
push esi
call edi
test eax, eax
je 0x100047b1
jmp 0x10004650
push 7
lea ecx, [ebp - 0x290]
call fcn.10001f60
mov cl, byte [ebp - 0x24c]
lea edx, [ebp - 0x24c]
cmp cl, byte [eax]
jne 0x1000467d
lea ecx, [ecx]
test cl, cl
je 0x1000467d
mov cl, byte [edx + 1]
inc edx
inc eax
cmp cl, byte [eax]
je 0x10004670
movsx ecx, byte [edx]
movsx edx, byte [eax]
sub ecx, edx
jne 0x10004689
mov bl, 1
push 8
lea ecx, [ebp - 0x290]
call fcn.10001f60
mov cl, byte [ebp - 0x24c]
lea edx, [ebp - 0x24c]
cmp cl, byte [eax]
jne 0x100046b3
test cl, cl
je 0x100046b3
mov cl, byte [edx + 1]
inc edx
inc eax
cmp cl, byte [eax]
je 0x100046a6
movsx ecx, byte [edx]
movsx edx, byte [eax]
sub ecx, edx
jne 0x100046bf
mov bl, 1
push 9
lea ecx, [ebp - 0x290]
call fcn.10001f60
mov cl, byte [ebp - 0x24c]
lea edx, [ebp - 0x24c]
cmp cl, byte [eax]
jne 0x100046ed
lea esp, [esp]
test cl, cl
je 0x100046ed
mov cl, byte [edx + 1]
inc edx
inc eax
cmp cl, byte [eax]
je 0x100046e0
movsx ecx, byte [edx]
movsx edx, byte [eax]
sub ecx, edx
jne 0x100046f9
mov bl, 1
push 0xa
lea ecx, [ebp - 0x290]
call fcn.10001f60
mov cl, byte [ebp - 0x24c]
lea edx, [ebp - 0x24c]
cmp cl, byte [eax]
jne 0x10004723
test cl, cl
je 0x10004723
mov cl, byte [edx + 1]
inc edx
inc eax
cmp cl, byte [eax]
je 0x10004716
movsx ecx, byte [edx]
movsx edx, byte [eax]
sub ecx, edx
jne 0x1000472f
mov bl, 1
push 0xb
lea ecx, [ebp - 0x290]
call fcn.10001f60
mov cl, byte [ebp - 0x24c]
lea edx, [ebp - 0x24c]
cmp cl, byte [eax]
jne 0x1000475d
lea esp, [esp]
test cl, cl
je 0x1000475d
mov cl, byte [edx + 1]
inc edx
inc eax
cmp cl, byte [eax]
je 0x10004750
movsx ecx, byte [edx]
movsx edx, byte [eax]
sub ecx, edx
jne 0x10004769
mov bl, 1
push 0xc
lea ecx, [ebp - 0x290]
call fcn.10001f60
mov cl, byte [ebp - 0x24c]
lea edx, [ebp - 0x24c]
cmp cl, byte [eax]
jne 0x10004793
test cl, cl
je 0x10004793
mov cl, byte [edx + 1]
inc edx
inc eax
cmp cl, byte [eax]
je 0x10004786
movsx ecx, byte [edx]
movsx edx, byte [eax]
sub ecx, edx
jne 0x1000479f
mov bl, 1
lea eax, [ebp - 0x278]
push eax
push esi
call edi
test eax, eax
jne 0x10004650
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x290]
push ecx
mov dword [ebp - 4], 0xffffffff
call fcn.10001130
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10001b84
mov esp, ebp
pop ebp
ret