Function at 0x42ace0
Capabilities:
Check if file exists
Copy file
Create directory
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f8f40
mov eax, dword fs:[0]
push eax
sub esp, 0x7b0
mov eax, dword [0x5381f8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [ebp + 8]
call fcn.00403a90
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x42ae39
lea eax, [ebp - 0x544]
push eax
call fcn.004341b0
add esp, 4
mov dword [ebp - 0x514], eax
mov ecx, dword [ebp - 0x514]
mov dword [ebp - 0x51c], ecx
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x51c]
call fcn.00406890
mov dword [ebp - 0x47c], eax
mov edx, dword [ebp - 0x47c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x47c]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x469], al
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x544]
call fcn.00409eb0
movzx eax, byte [ebp - 0x469]
test eax, eax
je 0x42ae34
lea ecx, [ebp - 0x554]
push ecx
call fcn.004341b0
add esp, 4
mov dword [ebp - 0x49c], eax
mov edx, dword [ebp - 0x49c]
mov dword [ebp - 0x4a0], edx
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x4a0]
call fcn.004068b0
mov dword [ebp - 0x480], eax
push str.The_from_folder_is_not_exists
lea ecx, [ebp - 0x5f4]
call fcn.004091f0
mov dword [ebp - 0x4a4], eax
mov eax, dword [ebp - 0x4a4]
mov dword [ebp - 0x4a8], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x4a8]
call fcn.0042c3e0
push eax
mov ecx, dword [ebp - 0x480]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x480]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x5f4]
call fcn.00409f20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x554]
call fcn.00409eb0
jmp 0x42b49d
mov ecx, dword [ebp + 0xc]
call fcn.00403a90
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42ae58
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0042b4c0
add esp, 4
push 0
mov ecx, dword [ebp + 0xc]
call fcn.00403a90
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x42afb9
lea edx, [ebp - 0x524]
push edx
call fcn.004341b0
add esp, 4
mov dword [ebp - 0x4ac], eax
mov eax, dword [ebp - 0x4ac]
mov dword [ebp - 0x4b0], eax
mov dword [ebp - 4], 3
mov ecx, dword [ebp - 0x4b0]
call fcn.00406890
mov dword [ebp - 0x484], eax
mov ecx, dword [ebp - 0x484]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x484]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 0x46a], al
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x524]
call fcn.00409eb0
movzx ecx, byte [ebp - 0x46a]
test ecx, ecx
je 0x42afb4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x4bc], eax
lea edx, [ebp - 0x52c]
push edx
call fcn.004341b0
add esp, 4
mov dword [ebp - 0x4b4], eax
mov eax, dword [ebp - 0x4b4]
mov dword [ebp - 0x4b8], eax
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x4b8]
call fcn.004068b0
mov dword [ebp - 0x488], eax
lea ecx, [ebp - 0x4bc]
push ecx
push str._failed__error_code_
mov edx, dword [ebp + 0xc]
push edx
push str.Create_folder_
lea ecx, [ebp - 0x68c]
call fcn.004091f0
mov dword [ebp - 0x4c0], eax
mov eax, dword [ebp - 0x4c0]
mov dword [ebp - 0x4c4], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x4c4]
call fcn.00423f60
mov ecx, eax
call fcn.00406500
mov ecx, eax
call fcn.00424060
mov ecx, eax
call fcn.004195a0
push eax
mov ecx, dword [ebp - 0x488]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x488]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x68c]
call fcn.00409f20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x52c]
call fcn.00409eb0
jmp 0x42b49d
push 0x208
push 0
lea ecx, [ebp - 0x218]
push ecx
call fcn.004a03d0
add esp, 0xc
mov ecx, dword [ebp + 8]
call fcn.00403a90
push eax
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x507f58
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x468]
push ecx
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x478], eax
cmp dword [ebp - 0x478], 0xffffffff
je 0x42b027
cmp dword [ebp - 0x478], 0
jne 0x42b158
lea eax, [ebp - 0x534]
push eax
call fcn.004341b0
add esp, 4
mov dword [ebp - 0x4c8], eax
mov ecx, dword [ebp - 0x4c8]
mov dword [ebp - 0x4cc], ecx
mov dword [ebp - 4], 6
mov ecx, dword [ebp - 0x4cc]
call fcn.00406890
mov dword [ebp - 0x48c], eax
mov edx, dword [ebp - 0x48c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x48c]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x46b], al
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x534]
call fcn.00409eb0
movzx eax, byte [ebp - 0x46b]
test eax, eax
je 0x42b153
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x4d8], eax
lea ecx, [ebp - 0x53c]
push ecx
call fcn.004341b0
add esp, 4
mov dword [ebp - 0x4d0], eax
mov edx, dword [ebp - 0x4d0]
mov dword [ebp - 0x4d4], edx
mov dword [ebp - 4], 7
mov ecx, dword [ebp - 0x4d4]
call fcn.004068b0
mov dword [ebp - 0x490], eax
lea eax, [ebp - 0x4d8]
push eax
push 0x507f60
lea ecx, [ebp - 0x724]
call fcn.004091f0
mov dword [ebp - 0x4dc], eax
mov ecx, dword [ebp - 0x4dc]
mov dword [ebp - 0x4e0], ecx
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x4e0]
call fcn.004241a0
mov ecx, eax
call fcn.004195a0
push eax
mov edx, dword [ebp - 0x490]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x490]
mov edx, dword [eax + 8]
call edx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x724]
call fcn.00409f20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x53c]
call fcn.00409eb0
jmp 0x42b49d
mov eax, 2
imul ecx, eax, 0
movzx edx, word [ebp + ecx - 0x43c]
cmp edx, 0x2e
jne 0x42b181
mov eax, 2
shl eax, 0
movzx ecx, word [ebp + eax - 0x43c]
test ecx, ecx
je 0x42b1a9
mov edx, 2
shl edx, 0
movzx eax, word [ebp + edx - 0x43c]
cmp eax, 0x2e
jne 0x42b1ae
mov ecx, 2
shl ecx, 1
movzx edx, word [ebp + ecx - 0x43c]
test edx, edx
jne 0x42b1ae
jmp 0x42b46c
lea eax, [ebp - 0x43c]
push eax
push 0x507f84
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x4ec]
push edx
call fcn.0041a390
add esp, 0xc
mov dword [ebp - 0x4e4], eax
mov eax, dword [ebp - 0x4e4]
mov dword [ebp - 0x4e8], eax
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x4e8]
push ecx
lea edx, [ebp - 0x470]
push edx
call fcn.0041a390
add esp, 0xc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4ec]
call fcn.00403900
lea eax, [ebp - 0x470]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0042e2c0
add esp, 8
movzx edx, al
test edx, edx
je 0x42b23c
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x470]
call fcn.00403900
jmp 0x42b46c
lea eax, [ebp - 0x43c]
push eax
push 0x507f88
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x4f8]
push edx
call fcn.0041a390
add esp, 0xc
mov dword [ebp - 0x4f0], eax
mov eax, dword [ebp - 0x4f0]
mov dword [ebp - 0x4f4], eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x4f4]
push ecx
lea edx, [ebp - 0x474]
push edx
call fcn.0041a390
add esp, 0xc
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x4f8]
call fcn.00403900
mov eax, dword [ebp - 0x468]
and eax, 0x10
je 0x42b2dd
lea ecx, [ebp - 0x474]
push ecx
lea edx, [ebp - 0x470]
push edx
call fcn.0042ace0
add esp, 8
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x474]
call fcn.00403900
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x470]
call fcn.00403900
jmp 0x42b46c
push 0
lea ecx, [ebp - 0x474]
call fcn.00403a90
push eax
lea ecx, [ebp - 0x470]
call fcn.00403a90
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x50c], eax
lea eax, [ebp - 0x55c]
push eax
call fcn.004341b0
add esp, 4
mov dword [ebp - 0x4fc], eax
mov ecx, dword [ebp - 0x4fc]
mov dword [ebp - 0x500], ecx
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x500]
call fcn.00406890
mov dword [ebp - 0x494], eax
mov edx, dword [ebp - 0x494]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x494]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x46c], al
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x55c]
call fcn.00409eb0
movzx eax, byte [ebp - 0x46c]
test eax, eax
je 0x42b44b
lea ecx, [ebp - 0x54c]
push ecx
call fcn.004341b0
add esp, 4
mov dword [ebp - 0x504], eax
mov edx, dword [ebp - 0x504]
mov dword [ebp - 0x508], edx
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x508]
call fcn.004068b0
mov dword [ebp - 0x498], eax
lea eax, [ebp - 0x50c]
push eax
push str.__res_
lea ecx, [ebp - 0x474]
push ecx
push str._to
lea edx, [ebp - 0x470]
push edx
push str.CopyFile
lea ecx, [ebp - 0x7bc]
call fcn.004091f0
mov dword [ebp - 0x510], eax
mov eax, dword [ebp - 0x510]
mov dword [ebp - 0x518], eax
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x518]
call fcn.004064e0
mov ecx, eax
call fcn.00406500
mov ecx, eax
call fcn.0042c3c0
mov ecx, eax
call fcn.00406500
mov ecx, eax
call fcn.00423f40
mov ecx, eax
call fcn.00424240
push eax
mov ecx, dword [ebp - 0x498]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x498]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x7bc]
call fcn.00409f20
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x54c]
call fcn.00409eb0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x474]
call fcn.00403900
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x470]
call fcn.00403900
lea ecx, [ebp - 0x468]
push ecx
mov edx, dword [ebp - 0x478]
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x42b158
mov eax, dword [ebp - 0x478]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
xor ecx, ecx
jne 0x42ad0b
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046621a
mov esp, ebp
pop ebp
ret