Function at 0x140013040
Capabilities:
Check if file exists
Copy file
Get file attributes
Set file attributes

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x30
mov r12, rcx
mov r15d, edx
lea rcx, [rbp + 0x58]
call fcn.14001f530
mov edx, 1
mov rdi, rax
lea ecx, [rdx + 9]
call fcn.1402deebc
mov rcx, qword [r12]
add rax, 8
mov rdx, qword [rdi]
mov qword [rbp + 0x40], rax
mov edx, dword [rdx - 8]
add edx, dword [rcx - 8]
lea rcx, [rbp + 0x40]
call fcn.14001e440
mov rdx, qword [rdi]
mov rbx, qword [rbp + 0x40]
mov rcx, rbx
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
call fcn.1402d15b0
mov rdx, qword [r12]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rax, qword [rdi]
movsxd rcx, dword [rax - 8]
lea rcx, [rbx + rcx*2]
call fcn.1402d15b0
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
mov rdx, 0xffffffffffffffff
mov qword [rbp + 0x40], rax
nop
inc rdx
cmp word [rbx + rdx*2], 0
jne 0x1400130e0
lea rcx, [rbp + 0x40]
call fcn.14001e440
mov rcx, qword [rbp + 0x40]
mov rdx, rbx
mov eax, dword [rcx - 8]
lea eax, [rax*2 + 2]
movsxd r8, eax
call fcn.1402d15b0
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x50]
call fcn.14001da90
mov rdi, qword [rbp + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0x3e
mov rcx, rdi
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test rdi, rdi
je 0x140013142
lea rcx, [rdi - 8]
call fcn.1402d83b4
test rbx, rbx
je 0x140013150
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x140013162
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
add rax, 8
lea rcx, [rbp + 0x40]
mov qword [rbp + 0x40], rax
mov rax, qword [r12]
mov edx, dword [rax - 8]
mov rax, qword [0x1406534b8]
add edx, dword [rax - 8]
call fcn.14001e440
mov rdx, qword [0x1406534b8]
mov rbx, qword [rbp + 0x40]
mov rcx, rbx
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
call fcn.1402d15b0
mov rdx, qword [r12]
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
mov rax, qword [0x1406534b8]
movsxd rcx, dword [rax - 8]
lea rcx, [rbx + rcx*2]
call fcn.1402d15b0
lea rcx, [rbp + 0x58]
call fcn.14001f530
mov rdx, rbx
lea rcx, [rbp + 0x50]
mov r8, qword [rax]
call fcn.140022100
lea rcx, [rbp + 0x40]
mov rbx, rax
mov rdx, qword [rax]
mov edx, dword [rdx - 8]
call fcn.14001e440
mov rdx, qword [rbx]
mov rsi, qword [rbp + 0x40]
mov rcx, rsi
mov eax, dword [rdx - 8]
add eax, eax
movsxd r8, eax
call fcn.1402d15b0
mov rcx, qword [rbp + 0x50]
test rcx, rcx
je 0x14001321f
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x140013231
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
mov rdx, rsi
lea rcx, [rbp - 0x10]
call fcn.140021d70
lea rcx, [rbp + 0x58]
call fcn.14001f530
mov rdx, qword [r12]
lea rcx, [rbp + 0x50]
mov r8, qword [rax]
call fcn.140022100
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x140013268
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
mov r14, qword [rbp - 0x10]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140013282
mov rcx, r14
call fcn.14001de70
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1400133c9
mov rdi, qword [rbp + 0x50]
xor r8d, r8d
mov rcx, rdi
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test r15d, r15d
je 0x14001359c
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
mov edx, dword [rsi - 8]
lea rcx, [rbp + 0x58]
add rax, 8
add edx, 5
mov qword [rbp + 0x58], rax
call fcn.14001e440
mov eax, dword [rsi - 8]
mov rdx, rsi
mov rbx, qword [rbp + 0x58]
add eax, eax
movsxd r8, eax
mov rcx, rbx
call fcn.1402d15b0
movsxd rax, dword [rsi - 8]
movsd xmm0, qword [str..resS]
movsd qword [rbx + rax*2], xmm0
lea rcx, [rbx + rax*2]
movzx eax, word [0x1404707e8]
mov word [rcx + 8], ax
lea rcx, [rbp + 0x40]
mov edx, dword [rbx - 8]
call fcn.14001e440
mov eax, dword [rbx - 8]
mov rdx, rbx
mov rsi, qword [rbp + 0x40]
add eax, eax
movsxd r8, eax
mov rcx, rsi
call fcn.1402d15b0
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
mov edx, dword [rdi - 8]
lea rcx, [rbp + 0x40]
add rax, 8
add edx, 5
mov qword [rbp + 0x40], rax
call fcn.14001e440
mov eax, dword [rdi - 8]
mov rdx, rdi
mov rbx, qword [rbp + 0x40]
add eax, eax
movsxd r8, eax
mov rcx, rbx
call fcn.1402d15b0
movsxd rax, dword [rdi - 8]
movsd xmm0, qword [str..resS]
movsd qword [rbx + rax*2], xmm0
lea rcx, [rbx + rax*2]
movzx eax, word [0x1404707e8]
mov word [rcx + 8], ax
lea rcx, [rbp + 0x50]
mov edx, dword [rbx - 8]
call fcn.14001e440
mov eax, dword [rbx - 8]
mov rdx, rbx
mov rdi, qword [rbp + 0x50]
add eax, eax
movsxd r8, eax
mov rcx, rdi
call fcn.1402d15b0
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov rdx, rsi
mov rcx, rdi
jmp 0x140013593
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
mov rdi, qword [rbp + 0x50]
lea rcx, [rbp + 0x58]
add rax, 8
mov qword [rbp + 0x58], rax
mov edx, dword [rdi - 8]
call fcn.14001e440
mov eax, dword [rdi - 8]
mov rdx, rdi
mov rcx, qword [rbp + 0x58]
add eax, eax
movsxd r8, eax
call fcn.1402d15b0
lea rcx, [rbp + 0x58]
call fcn.140012e30
test eax, eax
je 0x14001341e
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test r15d, r15d
je 0x14001359c
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
mov edx, dword [rsi - 8]
lea rcx, [rbp + 0x58]
add rax, 8
add edx, 5
mov qword [rbp + 0x58], rax
call fcn.14001e440
mov eax, dword [rsi - 8]
mov rdx, rsi
mov rbx, qword [rbp + 0x58]
add eax, eax
movsxd r8, eax
mov rcx, rbx
call fcn.1402d15b0
movsxd rax, dword [rsi - 8]
movsd xmm0, qword [str..resS]
movsd qword [rbx + rax*2], xmm0
lea rcx, [rbx + rax*2]
movzx eax, word [0x1404707e8]
mov word [rcx + 8], ax
lea rcx, [rbp + 0x40]
mov edx, dword [rbx - 8]
call fcn.14001e440
mov eax, dword [rbx - 8]
mov rdx, rbx
mov rsi, qword [rbp + 0x40]
add eax, eax
movsxd r8, eax
mov rcx, rsi
call fcn.1402d15b0
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
mov edx, dword [rdi - 8]
lea rcx, [rbp + 0x40]
add rax, 8
add edx, 5
mov qword [rbp + 0x40], rax
call fcn.14001e440
mov eax, dword [rdi - 8]
mov rdx, rdi
mov rbx, qword [rbp + 0x40]
add eax, eax
movsxd r8, eax
mov rcx, rbx
call fcn.1402d15b0
movsxd rax, dword [rdi - 8]
movsd xmm0, qword [str..resS]
movsd qword [rbx + rax*2], xmm0
lea rcx, [rbx + rax*2]
movzx eax, word [0x1404707e8]
mov word [rcx + 8], ax
lea rcx, [rbp + 0x50]
mov edx, dword [rbx - 8]
call fcn.14001e440
mov eax, dword [rbx - 8]
mov rdx, rbx
mov rdi, qword [rbp + 0x50]
add eax, eax
movsxd r8, eax
mov rcx, rdi
call fcn.1402d15b0
lea rcx, [rbx - 8]
call fcn.1402d83b4
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x14001354b
mov rdx, rsi
mov rcx, rdi
jmp 0x140013593
mov edx, 1
lea ecx, [rdx + 9]
call fcn.1402deebc
mov edx, dword [rdi - 8]
lea rcx, [rbp + 0x40]
add rax, 8
mov qword [rbp + 0x40], rax
call fcn.14001e440
mov eax, dword [rdi - 8]
mov rdx, rdi
mov rcx, qword [rbp + 0x40]
add eax, eax
movsxd r8, eax
call fcn.1402d15b0
lea rcx, [rbp + 0x40]
call fcn.140012e30
test eax, eax
je 0x14001359c
mov rdx, rdi
mov rcx, rsi
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test rdi, rdi
je 0x1400135aa
lea rcx, [rdi - 8]
call fcn.1402d83b4
test r14, r14
je 0x1400135b8
lea rcx, [r14 - 8]
call fcn.1402d83b4
test rsi, rsi
je 0x1400135c6
lea rcx, [rsi - 8]
call fcn.1402d83b4
mov rcx, qword [r12]
test rcx, rcx
je 0x1400135d8
add rcx, 0xfffffffffffffff8
call fcn.1402d83b4
mov eax, 1
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret