Function at 0x140008f20
Capabilities:
Check if file exists
Copy file
Move file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xffa8]
mov eax, 0x100a8
call fcn.140018110
sub rsp, rax
mov rax, qword [0x14003ebd8]
xor rax, rsp
mov qword [rbp + 0xff90], rax
mov r12, rcx
mov r13d, r9d
lea rcx, [rsp + 0x48]
mov r14d, r8d
mov rdi, rdx
call qword [sym.imp.KERNEL32.dll_GetSystemTime]
xor r9d, r9d
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
xor edx, edx
mov rcx, rdi
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 7]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
mov ebx, 1
cmp rax, 0xffffffffffffffff
je 0x140009052
lea rdx, [rsp + 0x58]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
jne 0x140008fd2
xor ebx, ebx
lea rdx, [rsp + 0x6c]
xor esi, esi
lea rcx, [rsp + 0x48]
xor r14d, r14d
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
jmp 0x140008fde
mov ebx, dword [rbp + 0x10018]
mov esi, dword [rbp + 0x10010]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r14d, r14d
je 0x140009032
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov rax, qword [rsp + 0x40]
mov ecx, r14d
imul rdx, rcx, 0xffffffffff676980
lea rcx, [rsp + 0x6c]
add rax, rdx
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], eax
shr rax, 0x20
mov dword [rsp + 0x44], eax
call qword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jg 0x1400091ce
test esi, esi
jne 0x14000903a
test ebx, ebx
je 0x1400090aa
cmp dword [rsp + 0x78], ebx
jb 0x1400091ce
jne 0x1400090aa
cmp dword [rsp + 0x7c], esi
jb 0x1400091ce
jmp 0x1400090aa
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x1400091ce
mov ecx, eax
call fcn.140002510
mov qword [rsp + 0x38], 0
mov r9, rdi
mov qword [rsp + 0x30], rax
mov r8, r12
lea rax, str.CreateFile__
mov qword [rsp + 0x28], rdi
mov edx, 0xc0000427
movzx ecx, bx
mov qword [rsp + 0x20], rax
call fcn.140002610
lea rdx, [rsp + 0x6c]
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x6c]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
lea r9, [rsp + 0x48]
mov r8d, 0x7fff
lea rdx, [rbp - 0x70]
mov rcx, rdi
call fcn.140009200
cmp byte [rbp + 0x10020], 0
lea rdx, [rbp - 0x70]
mov esi, 4
mov rcx, rdi
je 0x14000914e
mov r14d, 1
lea rbx, str.CopyFile__
mov r8d, r14d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x14000918c
mov r9d, esi
mov dword [rsp + 0x20], 0x80
xor r8d, r8d
lea edx, [rsi - 1]
mov rcx, rdi
call fcn.1400097e0
mov ecx, r13d
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_Sleep]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14000915f
lea rbx, str.MoveFile__
call qword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x140009186
lea rax, [rbp - 0x70]
mov qword [rsp + 0x28], 0
mov r9, rdi
movzx ecx, si
mov r8, r12
mov qword [rsp + 0x20], rax
mov edx, 0x40000435
call fcn.140002610
jmp 0x1400091ce
mov r14d, 1
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x1400091ce
mov ecx, eax
call fcn.140002510
mov qword [rsp + 0x38], 0
mov r9, rdi
mov qword [rsp + 0x30], rax
mov r8, r12
lea rax, [rbp - 0x70]
movzx ecx, r14w
mov qword [rsp + 0x28], rax
mov edx, 0xc0000427
mov qword [rsp + 0x20], rbx
call fcn.140002610
mov rcx, qword [rbp + 0xff90]
xor rcx, rsp
call fcn.1400180d0
add rsp, 0x100a8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret