Function at 0x14001b5f0
Capabilities:
Move file

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0
mov rax, qword [rsp + 0x20]
lea r9, [0x140109350]
mov r8d, 6
mov edx, 0xc001b0c5
mov rcx, rax
call fcn.140043510
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0xffffffe2
jne 0x14001b63f
mov eax, 0xffffffe2
jmp 0x14001ba08
xor eax, eax
test eax, eax
jne 0x14001b60b
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + 4]
and eax, 2
test eax, eax
je 0x14001b65b
xor eax, eax
jmp 0x14001ba08
mov rax, qword [rsp + 0x20]
mov rcx, rax
call fcn.14000a830
mov rax, qword [rsp + 0x20]
cmp qword [rax + 0x1b0], 0xffffffffffffffff
jne 0x14001b679
jmp 0x14001b6eb
mov rax, qword [rsp + 0x20]
cmp qword [rax + 0x1d0], 0
jge 0x14001b68a
jmp 0x14001b6eb
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0x1d0]
cmp qword [rax + 0x1c0], rcx
jne 0x14001b6a6
jmp 0x14001b6eb
mov rax, qword [rsp + 0x20]
mov rdx, qword [rax + 0x1d0]
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax + 0x1b0]
call fcn.14001c610
cmp eax, 0xffffffff
jne 0x14001b6eb
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rcx, qword [rsp + 0x20]
lea r8, str.File_size_could_not_be_restored
mov edx, dword [rax]
call fcn.14000a870
mov eax, 0xffffffe7
jmp 0x14001ba08
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + 0x1a0]
and eax, 0x14000001
test eax, eax
je 0x14001b747
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax + 0x158]
call fcn.14001de80
mov qword [rsp + 0x48], rax
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0x158]
call fcn.14001dea0
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x48]
mov r8, rdx
mov rdx, rax
call fcn.1400163f0
mov rcx, qword [rsp + 0x20]
mov qword [rcx + 0x1e0], rax
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + 0x1a0]
and eax, 0x14000001
test eax, eax
je 0x14001b7a3
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax + 0x158]
call fcn.14001d5e0
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0x158]
call fcn.14001d600
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x50]
mov r8, rdx
mov rdx, rax
call fcn.140016350
mov rcx, qword [rsp + 0x20]
mov qword [rcx + 0x1e8], rax
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + 0x1a0]
and eax, 1
test eax, eax
je 0x14001b7c3
mov rcx, qword [rsp + 0x20]
call fcn.140019b50
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + 0x1a0]
and eax, 0x34000000
test eax, eax
je 0x14001b805
mov rax, qword [rsp + 0x20]
movzx eax, word [rax + 0x1dc]
mov edx, eax
mov rcx, qword [rsp + 0x20]
call fcn.140019c10
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x28]
cmp dword [rsp + 0x2c], eax
jge 0x14001b805
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + 0x1a0]
and eax, 0x80
test eax, eax
je 0x14001b839
mov rcx, qword [rsp + 0x20]
call fcn.140019980
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x28]
cmp dword [rsp + 0x30], eax
jge 0x14001b839
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + 0x1a0]
and eax, 0x40
test eax, eax
je 0x14001b86b
mov rcx, qword [rsp + 0x20]
call fcn.140019a10
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x28]
cmp dword [rsp + 0x34], eax
jge 0x14001b86b
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + 0x1a0]
and eax, 4
test eax, eax
je 0x14001b89d
mov rcx, qword [rsp + 0x20]
call fcn.14001a030
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x28]
cmp dword [rsp + 0x38], eax
jge 0x14001b89d
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + 0x1a0]
and eax, 0x20
test eax, eax
je 0x14001b90d
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax + 0x158]
call fcn.14001fc70
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0x158]
call fcn.14001daa0
mov rcx, qword [rsp + 0x58]
mov r9, rcx
mov r8, rax
mov rax, qword [rsp + 0x20]
mov rdx, qword [rax + 0x1b0]
mov rcx, qword [rsp + 0x20]
call fcn.140019960
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x28]
cmp dword [rsp + 0x3c], eax
jge 0x14001b90d
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x20]
cmp qword [rax + 0x1b0], 0xffffffffffffffff
je 0x14001b9d7
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax + 0x1b0]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0x20]
mov qword [rax + 0x1b0], 0xffffffffffffffff
mov rax, qword [rsp + 0x20]
cmp qword [rax + 0x180], 0
je 0x14001b9d7
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax + 0x160]
call fcn.140016520
mov rax, qword [rsp + 0x20]
mov rdx, qword [rax + 0x160]
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax + 0x180]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wrename]
test eax, eax
je 0x14001b9c7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140041ed0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rcx, qword [rsp + 0x20]
lea r8, str.Failed_to_rename_temporary_file
mov edx, dword [rax]
call fcn.14000a870
mov dword [rsp + 0x28], 0xffffffe7
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax + 0x180]
call fcn.140016520
mov rax, qword [rsp + 0x20]
mov qword [rax + 0x180], 0
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax + 0x158]
call fcn.14001d190
mov rax, qword [rsp + 0x20]
mov qword [rax + 0x158], 0
mov rax, qword [rsp + 0x20]
mov dword [rax + 4], 2
mov eax, dword [rsp + 0x28]
add rsp, 0x68
ret