Function at 0x140001820
Capabilities:
Get file attributes
Move file

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x1c0], rbx
mov rax, qword [0x1400dc010]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov r14, rdx
mov rsi, rcx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rdx
xor r13d, r13d
mov dword [rsp + 0x40], r13d
mov rcx, qword [rdx]
lea rbx, [r13 - 1]
cmp dword [rcx - 0x10], r13d
jg 0x140001881
mov r15d, ebx
jmp 0x14000189f
mov edx, 0x3d
call qword [sym.imp.VCRUNTIME140.dll_wcschr]
mov r15, rax
test rax, rax
jne 0x140001899
mov r15d, ebx
jmp 0x14000189f
sub r15, qword [r14]
sar r15, 1
mov rcx, qword [r14]
cmp dword [rcx - 0x10], 0
jg 0x1400018ac
mov edi, ebx
jmp 0x1400018c9
mov edx, 0x3b
call qword [sym.imp.VCRUNTIME140.dll_wcschr]
mov rdi, rax
test rax, rax
jne 0x1400018c3
mov edi, ebx
jmp 0x1400018c9
sub rdi, qword [r14]
sar rdi, 1
mov edx, 0x3d
mov rcx, qword [r14]
call qword [sym.imp.VCRUNTIME140.dll_wcsrchr]
mov r12, rax
test rax, rax
jne 0x1400018e4
mov r12d, ebx
jmp 0x1400018ea
sub r12, qword [r14]
sar r12, 1
sub edi, r15d
lea r9d, [rdi - 1]
lea r8d, [r15 + 1]
lea rdx, [rsp + 0x48]
mov rcx, r14
call fcn.14000bc40
nop
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x64
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
mov r9d, ebx
mov r8, qword [rsp + 0x48]
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rax, qword [r14]
mov r8d, dword [rax - 0x10]
sub r8d, r12d
dec r8d
lea rdx, [rsp + 0x50]
mov rcx, r14
call fcn.14000bb80
nop
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x64
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
mov r9d, ebx
mov r8, qword [rsp + 0x50]
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0x48]
add rcx, 0xffffffffffffffe8
call fcn.14000d070
add rax, 0x18
mov qword [rsp + 0x58], rax
lea rcx, [rsp + 0x58]
call fcn.140003ed0
test al, al
jne 0x140001a73
call fcn.14000d980
mov rcx, rax
test rax, rax
je 0x140001cce
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsi], rax
lea rdi, str.Failure_:_File_does_not_exist
mov rdx, rdi
mov rcx, rsi
call fcn.14000cc80
test al, al
jne 0x140001a09
mov rax, rbx
nop dword [rax + rax]
inc rax
cmp word [rdi + rax*2], 0
jne 0x1400019f0
mov r8d, eax
mov rdx, rdi
mov rcx, rsi
call fcn.14000d160
nop
mov dword [rsp + 0x40], 1
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140001a30
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140001a4f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [r14]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x140001c99
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
jmp 0x140001c99
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp edi, 0x10
jne 0x140001b2a
call fcn.14000d980
mov rcx, rax
test rax, rax
je 0x140001cd9
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsi], rax
lea rdi, str.Failure_:_File_specified_is_not_correct__DIR_
mov rdx, rdi
mov rcx, rsi
call fcn.14000cc80
test al, al
jne 0x140001adf
mov rax, rbx
inc rax
cmp word [rdi + rax*2], 0
jne 0x140001ac6
mov r8d, eax
mov rdx, rdi
mov rcx, rsi
call fcn.14000d160
nop
mov dword [rsp + 0x40], 1
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140001b06
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140001b25
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
jmp 0x140001c7f
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x10]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll_rename]
test eax, eax
je 0x140001be4
call fcn.14000d980
mov rcx, rax
test rax, rax
je 0x140001ce4
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsi], rax
lea rdi, str.Error_renaming_file
mov rdx, rdi
mov rcx, rsi
call fcn.14000cc80
test al, al
jne 0x140001b99
mov rax, rbx
nop word [rax + rax]
inc rax
cmp word [rdi + rax*2], 0
jne 0x140001b80
mov r8d, eax
mov rdx, rdi
mov rcx, rsi
call fcn.14000d160
nop
mov dword [rsp + 0x40], 1
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140001bc0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140001bdf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
jmp 0x140001c7f
call fcn.14000d980
mov rcx, rax
test rax, rax
je 0x140001cc3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsi], rax
lea rdi, str.File_renamed_successfully
mov rdx, rdi
mov rcx, rsi
call fcn.14000cc80
test al, al
jne 0x140001c39
mov rax, rbx
nop dword [rax + rax]
inc rax
cmp word [rdi + rax*2], 0
jne 0x140001c20
mov r8d, eax
mov rdx, rdi
mov rcx, rsi
call fcn.14000d160
nop
mov dword [rsp + 0x40], 1
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140001c60
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140001c7f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [r14]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x140001c99
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, rsi
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.1400691f0
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.14000dd90
int3
mov ecx, 0x80004005
call fcn.14000dd90
int3
mov ecx, 0x80004005
call fcn.14000dd90
int3
mov ecx, 0x80004005
call fcn.14000dd90
int3