Function at 0x1401b145c
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 0x1401b1500
lea rdx, [rbp + 0x48]
mov rcx, rdi
call fcn.140078fc0
mov esi, eax
test eax, eax
jns 0x1401b14b2
mov ecx, eax
call fcn.1400790f8
mov rbx, qword [rbp + 0x48]
jmp 0x1401b1764
mov rbx, qword [rbp + 0x48]
lea r8, str..bak
mov rdx, rbx
lea rcx, [rbp + 0x40]
call fcn.1401b3ac0
mov esi, eax
test eax, eax
jns 0x1401b14db
mov ecx, eax
call fcn.1400790f8
jmp 0x1401b1764
mov r15, qword [rbp + 0x40]
test r12, r12
je 0x1401b14f3
mov rax, qword [r12]
mov qword [r14 + 0x28], rax
mov rax, qword [r12 + 8]
jmp 0x1401b14fa
and qword [r14 + 0x28], 0
xor eax, eax
mov qword [r14 + 0x30], rax
jmp 0x1401b1508
mov rdi, qword [rcx + 0x10]
mov r15, qword [rcx + 0x18]
test r13d, r13d
je 0x1401b151d
mov rdx, rdi
call fcn.1401ab82c
mov rdx, r15
call fcn.1401ab82c
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
or r12d, 0xffffffff
cmp eax, r12d
jne 0x1401b1562
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x1401b1597
test eax, eax
jne 0x1401b1545
mov esi, 0x80004005
jmp 0x1401b155b
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
test esi, esi
jns 0x1401b178d
mov ecx, esi
jmp 0x1401b14d1
mov rdx, rdi
call fcn.1401ab82c
xor r8d, r8d
mov rdx, rdi
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x1401b1597
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x1401b153e
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
jmp 0x1401b155b
mov r9, rdi
mov edx, 0x80000000
mov r8d, 3
mov rcx, r14
call fcn.1401b26a8
mov esi, eax
test eax, eax
jns 0x1401b15ba
mov ecx, eax
call fcn.1400790f8
mov ecx, esi
call fcn.140079118
cmp esi, 0x80070002
jne 0x1401b16dd
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 0x1401b1616
or rdx, 0xffffffffffffffff
mov cl, r13b
mov qword [rbp + 0x48], rdx
jmp 0x1401b161c
mov qword [rbp + 0x48], rax
xor cl, cl
xor eax, eax
mov r13d, 0x2000
test cl, cl
cmove rax, rdx
test rax, rax
jne 0x1401b1657
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1401b1640
mov esi, 0x80004005
jmp 0x1401b164e
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov ecx, esi
call fcn.1400790f8
jmp 0x1401b1673
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, r12d
je 0x1401b1673
or eax, r13d
mov rcx, r15
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, esi
call fcn.140079118
lea rcx, [rbp + 0x48]
call fcn.140075ab4
test esi, esi
js 0x1401b155b
mov r9, rdi
mov edx, 0xc0000000
mov r8d, 4
mov rcx, r14
call fcn.1401b26a8
mov esi, eax
test eax, eax
jns 0x1401b16ae
mov ecx, eax
call fcn.1400790f8
mov ecx, esi
call fcn.140079118
test esi, esi
js 0x1401b155b
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, r12d
je 0x1401b16d9
or eax, r13d
mov rcx, rdi
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor eax, eax
jmp 0x1401b16ea
test esi, esi
js 0x1401b155b
mov eax, 1
mov dword [r14 + 0x20], eax
test rbx, rbx
je 0x1401b1764
mov rdi, qword [r14 + 0x10]
mov r15, rbx
xor ebx, ebx
test rdi, rdi
je 0x1401b171d
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.140079118
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 0x1401b1757
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.140079118
xor eax, eax
test r15, r15
cmovne rax, r15
mov qword [r14 + 0x18], rax
test esi, esi
jns 0x1401b178d
cmp dword [0x14042f79c], 0
jne 0x1401b178d
xor r9d, r9d
mov r8d, esi
mov rcx, r14
lea edx, [r9 + 3]
call fcn.1401ab8a8
mov dword [0x14042f79c], 1
mov ecx, esi
call fcn.140079118
mov rax, qword [rbp + 0x40]
test rax, rax
je 0x1401b17c1
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.140079118
and qword [rbp + 0x40], 0
test rbx, rbx
je 0x1401b17e2
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.140079118
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