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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x670
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
mov edi, dword [ebp + 8]
push 0
push dword [0x100042ac]
xor ebx, ebx
inc ebx
mov dword [ebp - 0x668], ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x10001755
xor eax, eax
jmp 0x10001877
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x414]
cmp edi, 0x100
jae 0x1000177b
push 0x10003380
push eax
call esi
add word [ebp - 0x414], di
jmp 0x1000177f
push edi
push eax
call esi
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call esi
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x1000337c
lea eax, [ebp - 0x414]
push eax
call edi
lea eax, [ebp - 0x664]
push eax
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x66c], eax
cmp eax, 0xffffffff
jne 0x100017c9
mov eax, ebx
jmp 0x10001876
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x414]
push eax
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push 0x10003378
lea eax, [ebp - 0x638]
push eax
call ebx
test eax, eax
je 0x10001982
push 0x10003370
lea eax, [ebp - 0x638]
push eax
call ebx
test eax, eax
je 0x10001982
test byte [ebp - 0x664], 0x10
je 0x10001887
push 0x14
push dword [0x100042ac]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x1000185d
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call esi
lea eax, [ebp - 0x638]
push eax
lea eax, [ebp - 0x20c]
push eax
call edi
lea eax, [ebp - 0x20c]
push eax
call fcn.10001718
test eax, eax
jne 0x10001982
and dword [ebp - 0x668], 0
push dword [ebp - 0x66c]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x668]
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.10001f91
leave
ret 4
lea eax, [ebp - 0x638]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov dword [ebp - 0x670], eax
test eax, eax
je 0x10001969
push 0x10003364
push eax
call ebx
test eax, eax
jne 0x10001905
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call esi
push 0x100031d4
lea eax, [ebp - 0x20c]
push eax
call edi
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x10001982
push 1
lea eax, [ebp - 0x20c]
push eax
push 0x10004028
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 7
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x10003358
push dword [ebp - 0x670]
call ebx
test eax, eax
je 0x10001927
push 0x1000334c
push dword [ebp - 0x670]
call ebx
test eax, eax
jne 0x10001969
cmp dword [ebp - 0x648], 0
jne 0x10001969
cmp dword [ebp - 0x644], 0x3200000
jae 0x10001969
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call esi
lea eax, [ebp - 0x638]
push eax
lea eax, [ebp - 0x20c]
push eax
call edi
lea eax, [ebp - 0x20c]
push eax
call fcn.100014b5
pop ecx
push 0x14
push dword [0x100042ac]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x1000185d
lea eax, [ebp - 0x664]
push eax
push dword [ebp - 0x66c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp eax, 1
je 0x100017df
jmp 0x10001864