Function at 0x1401b66f0
Capabilities:
Check if file exists
Get file attributes
Move file
Set file attributes

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
xor ebx, ebx
mov r12, r9
and qword [rbp + 0x40], rbx
mov r13d, r8d
and dword [rcx], ebx
mov rdi, rdx
mov qword [rbp + 0x48], rbx
mov r14, rcx
test rdx, rdx
je 0x1401b6794
lea rdx, [rbp + 0x48]
mov rcx, rdi
call fcn.14007a9ec
mov esi, eax
test eax, eax
jns 0x1401b6746
mov ecx, eax
call fcn.14007ab24
mov rbx, qword [rbp + 0x48]
jmp 0x1401b6a00
mov rbx, qword [rbp + 0x48]
lea r8, str..bak
mov rdx, rbx
lea rcx, [rbp + 0x40]
call fcn.1401b8eec
mov esi, eax
test eax, eax
jns 0x1401b676f
mov ecx, eax
call fcn.14007ab24
jmp 0x1401b6a00
mov r15, qword [rbp + 0x40]
test r12, r12
je 0x1401b6787
mov rax, qword [r12]
mov qword [r14 + 0x28], rax
mov rax, qword [r12 + 8]
jmp 0x1401b678e
and qword [r14 + 0x28], 0
xor eax, eax
mov qword [r14 + 0x30], rax
jmp 0x1401b679c
mov rdi, qword [rcx + 0x10]
mov r15, qword [rcx + 0x18]
test r13d, r13d
je 0x1401b67b1
mov rdx, rdi
call fcn.1401b0b00
mov rdx, r15
call fcn.1401b0b00
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
or r12d, 0xffffffff
cmp eax, r12d
jne 0x1401b67f6
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x1401b682b
test eax, eax
jne 0x1401b67d9
mov esi, 0x80004005
jmp 0x1401b67ef
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
test esi, esi
jns 0x1401b6a29
mov ecx, esi
jmp 0x1401b6765
mov rdx, rdi
call fcn.1401b0b00
xor r8d, r8d
mov rdx, rdi
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x1401b682b
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x1401b67d2
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
jmp 0x1401b67ef
mov r9, rdi
mov edx, 0x80000000
mov r8d, 3
mov rcx, r14
call fcn.1401b7a30
mov esi, eax
test eax, eax
jns 0x1401b684e
mov ecx, eax
call fcn.14007ab24
mov ecx, esi
call fcn.14007ab44
cmp esi, 0x80070002
jne 0x1401b6971
xor esi, esi
xor r9d, r9d
and qword [rsp + 0x30], rsi
mov edx, 0xc0000000
mov dword [rsp + 0x28], 0x80
mov rcx, r15
lea r13d, [rsi + 1]
mov r8d, r13d
mov dword [rsp + 0x20], r13d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdx, rax
lea rcx, [rax + 1]
test rcx, 0xfffffffffffffffe
jne 0x1401b68aa
or rdx, 0xffffffffffffffff
mov cl, r13b
mov qword [rbp + 0x48], rdx
jmp 0x1401b68b0
mov qword [rbp + 0x48], rax
xor cl, cl
xor eax, eax
mov r13d, 0x2000
test cl, cl
cmove rax, rdx
test rax, rax
jne 0x1401b68eb
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1401b68d4
mov esi, 0x80004005
jmp 0x1401b68e2
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov ecx, esi
call fcn.14007ab24
jmp 0x1401b6907
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, r12d
je 0x1401b6907
or eax, r13d
mov rcx, r15
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, esi
call fcn.14007ab44
lea rcx, [rbp + 0x48]
call fcn.1400773f8
test esi, esi
js 0x1401b67ef
mov r9, rdi
mov edx, 0xc0000000
mov r8d, 4
mov rcx, r14
call fcn.1401b7a30
mov esi, eax
test eax, eax
jns 0x1401b6942
mov ecx, eax
call fcn.14007ab24
mov ecx, esi
call fcn.14007ab44
test esi, esi
js 0x1401b67ef
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, r12d
je 0x1401b696d
or eax, r13d
mov rcx, rdi
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor eax, eax
jmp 0x1401b697e
test esi, esi
js 0x1401b67ef
mov eax, 1
mov dword [r14 + 0x20], eax
test rbx, rbx
je 0x1401b6a00
mov rdi, qword [r14 + 0x10]
mov r15, rbx
xor ebx, ebx
test rdi, rdi
je 0x1401b69b5
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea r8, [rdi - 4]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor ecx, ecx
call fcn.14007ab44
and qword [r14 + 0x10], rbx
xor eax, eax
test r15, r15
cmovne rax, r15
mov r15, qword [rbp + 0x40]
and qword [rbp + 0x40], rbx
mov qword [r14 + 0x10], rax
mov rdi, qword [r14 + 0x18]
test rdi, rdi
je 0x1401b69f3
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea r8, [rdi - 4]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor ecx, ecx
call fcn.14007ab44
and qword [r14 + 0x18], rbx
xor eax, eax
test r15, r15
cmovne rax, r15
mov qword [r14 + 0x18], rax
test esi, esi
jns 0x1401b6a29
cmp dword [0x14043869c], 0
jne 0x1401b6a29
xor r9d, r9d
mov r8d, esi
mov rcx, r14
lea edx, [r9 + 3]
call fcn.1401b0b7c
mov dword [0x14043869c], 1
mov ecx, esi
call fcn.14007ab44
mov rax, qword [rbp + 0x40]
test rax, rax
je 0x1401b6a5d
lea rdi, [rax - 4]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor ecx, ecx
call fcn.14007ab44
and qword [rbp + 0x40], 0
test rbx, rbx
je 0x1401b6a7e
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea r8, [rbx - 4]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor ecx, ecx
call fcn.14007ab44
mov eax, esi
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret