Function at 0x40f360
Capabilities:
Copy file
Delete file
Move file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x9a0
mov eax, dword [0x42729c]
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 0
je 0x40f37f
cmp dword [ebp + 0xc], 0
jne 0x40f3b3
push str.Internal_error_while_copying_files.
mov eax, dword [ebp + 0x10]
add eax, 0xb18
push eax
call dword [sym.imp.MSVCR71.dll_wcscpy]
add esp, 8
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x70c], 0
mov edx, dword [ebp + 0x14]
mov dword [edx], 1
xor eax, eax
jmp 0x40f5b6
push 0
push 0x100000
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x99c], eax
cmp dword [ebp - 0x99c], 0xffffffff
jne 0x40f417
mov ecx, dword [ebp + 0xc]
push ecx
push str.Unable_to_lock_SOURCE_file:__s._Maybe_the_server_is_writing_to_it._Copy_Job_will_again_try_to_copy_it_the_next_time_it_runs.
mov edx, dword [ebp + 0x10]
add edx, 0xb18
push edx
call dword [sym.imp.MSVCR71.dll_swprintf]
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [eax + 0x70c], 0
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 1
xor eax, eax
jmp 0x40f5b6
mov edx, dword [ebp - 0x99c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0x100000
push 3
push 0
push 0
push 0x80000000
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x99c], eax
cmp dword [ebp - 0x99c], 0xffffffff
je 0x40f463
mov ecx, dword [ebp - 0x99c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x40f5b6
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x998]
push eax
call dword [sym.imp.MSVCR71.dll_wcscpy]
add esp, 8
lea ecx, [ebp - 0x998]
push ecx
call fcn.0040f710
add esp, 4
push 1
lea edx, [ebp - 0x998]
push edx
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40f50e
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x998]
push edx
call dword [sym.imp.MSVCR71.dll__wrename]
add esp, 8
test eax, eax
jne 0x40f4bf
mov eax, 1
jmp 0x40f5b6
lea eax, [ebp - 0x998]
push eax
call dword [sym.imp.MSVCR71.dll__wremove]
add esp, 4
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x998]
push edx
push str.Unknown_error_while_renaming__s_to__s
mov eax, dword [ebp + 0x10]
add eax, 0xb18
push eax
call dword [sym.imp.MSVCR71.dll_swprintf]
add esp, 0x10
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x70c], 0
mov edx, dword [ebp + 0x14]
mov dword [edx], 1
xor eax, eax
jmp 0x40f5b6
mov eax, dword [ebp + 0x14]
mov dword [eax], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x9a0], eax
lea ecx, [ebp - 0x998]
push ecx
call dword [sym.imp.MSVCR71.dll__wremove]
add esp, 4
mov edx, dword [ebp + 0x10]
mov dword [edx + 0x70c], 0
push 0
push 0xc8
lea eax, [ebp - 0x198]
push eax
push 0x800
mov ecx, dword [ebp - 0x9a0]
push ecx
push 0
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
test eax, eax
jne 0x40f58d
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp + 0xc]
push eax
push str.Unknown_error_while_copying_file__s_to__s
mov ecx, dword [ebp + 0x10]
add ecx, 0xb18
push ecx
call dword [sym.imp.MSVCR71.dll_swprintf]
add esp, 0x10
jmp 0x40f5b4
lea edx, [ebp - 0x198]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
push str.Error_while_copying_file__s_to__s:__s
mov edx, dword [ebp + 0x10]
add edx, 0xb18
push edx
call dword [sym.imp.MSVCR71.dll_swprintf]
add esp, 0x14
xor eax, eax
mov ecx, dword [ebp - 4]
call fcn.00419641
mov esp, ebp
pop ebp
ret