Function at 0x1401b6620
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 0x1401b66c4
lea rdx, [rbp + 0x48]
mov rcx, rdi
call fcn.140079b08
mov esi, eax
test eax, eax
jns 0x1401b6676
mov ecx, eax
call fcn.140079c40
mov rbx, qword [rbp + 0x48]
jmp 0x1401b6928
mov rbx, qword [rbp + 0x48]
lea r8, str..bak
mov rdx, rbx
lea rcx, [rbp + 0x40]
call fcn.1401b8cf4
mov esi, eax
test eax, eax
jns 0x1401b669f
mov ecx, eax
call fcn.140079c40
jmp 0x1401b6928
mov r15, qword [rbp + 0x40]
test r12, r12
je 0x1401b66b7
mov rax, qword [r12]
mov qword [r14 + 0x28], rax
mov rax, qword [r12 + 8]
jmp 0x1401b66be
and qword [r14 + 0x28], 0
xor eax, eax
mov qword [r14 + 0x30], rax
jmp 0x1401b66cc
mov rdi, qword [rcx + 0x10]
mov r15, qword [rcx + 0x18]
test r13d, r13d
je 0x1401b66e1
mov rdx, rdi
call fcn.1401b07e8
mov rdx, r15
call fcn.1401b07e8
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
or r12d, 0xffffffff
cmp eax, r12d
jne 0x1401b6726
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x1401b675b
test eax, eax
jne 0x1401b6709
mov esi, 0x80004005
jmp 0x1401b671f
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
test esi, esi
jns 0x1401b6951
mov ecx, esi
jmp 0x1401b6695
mov rdx, rdi
call fcn.1401b07e8
xor r8d, r8d
mov rdx, rdi
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x1401b675b
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x1401b6702
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
jmp 0x1401b671f
mov r9, rdi
mov edx, 0x80000000
mov r8d, 3
mov rcx, r14
call fcn.1401b787c
mov esi, eax
test eax, eax
jns 0x1401b677e
mov ecx, eax
call fcn.140079c40
mov ecx, esi
call fcn.140079c60
cmp esi, 0x80070002
jne 0x1401b68a1
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 0x1401b67da
or rdx, 0xffffffffffffffff
mov cl, r13b
mov qword [rbp + 0x48], rdx
jmp 0x1401b67e0
mov qword [rbp + 0x48], rax
xor cl, cl
xor eax, eax
mov r13d, 0x2000
test cl, cl
cmove rax, rdx
test rax, rax
jne 0x1401b681b
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1401b6804
mov esi, 0x80004005
jmp 0x1401b6812
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov ecx, esi
call fcn.140079c40
jmp 0x1401b6837
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, r12d
je 0x1401b6837
or eax, r13d
mov rcx, r15
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, esi
call fcn.140079c60
lea rcx, [rbp + 0x48]
call fcn.140076840
test esi, esi
js 0x1401b671f
mov r9, rdi
mov edx, 0xc0000000
mov r8d, 4
mov rcx, r14
call fcn.1401b787c
mov esi, eax
test eax, eax
jns 0x1401b6872
mov ecx, eax
call fcn.140079c40
mov ecx, esi
call fcn.140079c60
test esi, esi
js 0x1401b671f
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, r12d
je 0x1401b689d
or eax, r13d
mov rcx, rdi
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor eax, eax
jmp 0x1401b68ae
test esi, esi
js 0x1401b671f
mov eax, 1
mov dword [r14 + 0x20], eax
test rbx, rbx
je 0x1401b6928
mov rdi, qword [r14 + 0x10]
mov r15, rbx
xor ebx, ebx
test rdi, rdi
je 0x1401b68e1
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.140079c60
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 0x1401b691b
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.140079c60
xor eax, eax
test r15, r15
cmovne rax, r15
mov qword [r14 + 0x18], rax
test esi, esi
jns 0x1401b6951
cmp dword [0x1404401dc], 0
jne 0x1401b6951
xor r9d, r9d
mov r8d, esi
mov rcx, r14
lea edx, [r9 + 3]
call fcn.1401b0864
mov dword [0x1404401dc], 1
mov ecx, esi
call fcn.140079c60
mov rax, qword [rbp + 0x40]
test rax, rax
je 0x1401b6985
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.140079c60
and qword [rbp + 0x40], 0
test rbx, rbx
je 0x1401b69a6
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.140079c60
mov rbx, qword [rsp + 0x90]
mov eax, esi
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret