Function at 0x45a916
Capabilities:
Check if file exists
Copy file
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
push 0x894
mov eax, 0x4c7969
call fcn.00492e54
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
mov dword [ebp - 0x8a0], eax
mov dword [ebp - 0x89c], edi
call esi
test eax, eax
jne 0x45a94b
xor eax, eax
jmp 0x45aba6
push edi
call esi
xor ebx, ebx
test eax, eax
jne 0x45a9c5
push edi
lea eax, [ebp - 0x894]
push eax
call fcn.00408620
push 0x5c
lea esi, [ebp - 0x894]
mov dword [ebp - 4], ebx
call fcn.00404adb
cmp eax, ebx
jle 0x45a9a8
mov ecx, eax
lea edx, [ebp - 0x898]
mov eax, esi
call fcn.00404b49
mov edi, esi
mov byte [ebp - 4], 1
call fcn.00405208
mov eax, dword [ebp - 0x898]
add eax, 0xfffffff0
call fcn.00408396
mov esi, dword [ebp - 0x894]
call fcn.0045af1b
mov esi, dword [ebp - 0x89c]
call fcn.0045af1b
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x894]
add eax, 0xfffffff0
call fcn.00408396
push 0x24c
lea eax, [ebp - 0x88c]
push ebx
push eax
mov dword [ebp - 0x894], 1
mov dword [ebp - 0x890], ebx
call fcn.00492200
add esp, 0xc
mov edi, 0x20a
push edi
lea eax, [ebp - 0x640]
push ebx
push eax
call fcn.00492200
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
add esp, 0xc
push dword [ebp - 0x8a0]
lea eax, [ebp - 0x640]
push eax
call esi
push 0x4db344
lea eax, [ebp - 0x640]
push eax
call esi
lea eax, [ebp - 0x890]
push eax
lea eax, [ebp - 0x640]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x898], eax
cmp eax, 0xffffffff
je 0x45a944
mov ecx, 0x4daccc
lea eax, [ebp - 0x864]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45aa77
cmp dx, bx
je 0x45aa73
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45aa77
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x45aa51
xor eax, eax
jmp 0x45aa7c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x45ab79
mov ecx, 0x4d8df0
lea eax, [ebp - 0x864]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45aab5
cmp dx, bx
je 0x45aab1
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45aab5
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x45aa8f
xor eax, eax
jmp 0x45aaba
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x45ab79
push edi
lea eax, [ebp - 0x430]
push ebx
push eax
call fcn.00492200
add esp, 0xc
push dword [ebp - 0x8a0]
lea eax, [ebp - 0x430]
push eax
call esi
lea eax, [ebp - 0x864]
push eax
lea eax, [ebp - 0x430]
push eax
call esi
push edi
lea eax, [ebp - 0x220]
push ebx
push eax
call fcn.00492200
add esp, 0xc
push dword [ebp - 0x89c]
lea eax, [ebp - 0x220]
push eax
call esi
lea eax, [ebp - 0x864]
push eax
lea eax, [ebp - 0x220]
push eax
call esi
push 0x80
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test byte [ebp - 0x890], 0x10
lea eax, [ebp - 0x220]
push eax
je 0x45ab54
lea eax, [ebp - 0x430]
push eax
call fcn.0045a916
pop ecx
pop ecx
jmp 0x45ab73
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x45ab79
push ebx
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x430]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x894], eax
lea eax, [ebp - 0x890]
push eax
push dword [ebp - 0x898]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x45aa46
push dword [ebp - 0x898]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x894]
call fcn.00492ed7
ret