Function at 0x14002f410
Capabilities:
Move file

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov r13, r8
mov r12, rdx
mov r14, rcx
mov rax, qword [rcx]
mov rdi, qword [rax + 0x178]
xor ebp, ebp
test rdi, rdi
je 0x14002f4eb
mov rax, qword [rdi]
cmp dword [rax + 0x174], 3
jl 0x14002f4eb
call fcn.14009d5e8
mov rcx, rax
mov eax, ebp
test rcx, rcx
setne al
test eax, eax
jne 0x14002f482
mov ecx, 0x80004005
call fcn.1400034f0
int3
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x70], rax
lea rax, [0x1400fb278]
mov qword [rsp + 0x20], rax
lea r9, str.MoveLogFile
lea r8, str.CLogFile
lea rdx, str.__public___s::_s__s_
lea rcx, [rsp + 0x70]
call fcn.14000a800
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.14002f200
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002f4eb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r14 + 0x10]
cmp dword [rax - 0x10], 0
je 0x14002f839
test r12, r12
je 0x14002f527
mov ecx, 0x7fffffff
mov rax, r12
cmp word [rax], 0
je 0x14002f518
add rax, 2
sub rcx, 1
jne 0x14002f506
jmp 0x14002f527
test rcx, rcx
je 0x14002f527
mov ebx, 0x7fffffff
sub rbx, rcx
jmp 0x14002f52a
mov rbx, rbp
test r13, r13
je 0x14002f558
mov ecx, 0x7fffffff
mov rax, r13
cmp word [rax], 0
je 0x14002f549
add rax, 2
sub rcx, 1
jne 0x14002f537
jmp 0x14002f558
test rcx, rcx
je 0x14002f558
mov eax, 0x7fffffff
sub rax, rcx
jmp 0x14002f55b
mov rax, rbp
add rbx, rax
mov ecx, 0x7fffffff
lea rax, str.Setup
nop
nop
cmp word [rax], 0
je 0x14002f582
add rax, 2
sub rcx, 1
jne 0x14002f570
jmp 0x14002f591
test rcx, rcx
je 0x14002f591
mov eax, 0x7fffffff
sub rax, rcx
jmp 0x14002f594
mov rax, rbp
add rbx, rax
mov rdi, qword [r14 + 0x10]
movsxd rsi, dword [rdi - 0x10]
mov rax, rdi
cmp word [rdi], 0
je 0x14002f5c4
nop
nop
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
cmp word [rax], 0
jne 0x14002f5b0
cmp rdi, rax
ja 0x14002f5ef
movzx ecx, word [rax]
cmp cx, 0x2f
je 0x14002f5ef
cmp cx, 0x5c
je 0x14002f5ef
cmp cx, 0x3a
je 0x14002f5ef
cmp rax, rdi
je 0x14002f5fb
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharPrevW]
cmp rdi, rax
jbe 0x14002f5c4
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
mov rdi, rax
mov rcx, rsi
test rdi, rdi
je 0x14002f62f
cmp rcx, 0x7fffffff
ja 0x14002f62f
mov rax, rcx
test esi, esi
je 0x14002f62f
cmp word [rdi], 0
je 0x14002f625
add rdi, 2
sub rax, 1
jne 0x14002f613
jmp 0x14002f62f
test rax, rax
je 0x14002f62f
sub rcx, rax
jmp 0x14002f632
mov rcx, rbp
lea rbx, [rbx + rcx + 0x104]
lea r8, [rbx + rbx]
mov rcx, qword [r14 + 8]
test r8, r8
je 0x14002f834
mov edx, 8
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rsi, rax
test rax, rax
je 0x14002f834
mov dword [rsp + 0x20], 0x104
mov r9, r13
mov r8, r12
mov rdx, rax
mov rcx, qword [r14 + 8]
call fcn.140013060
xor r8d, r8d
mov rdx, rsi
mov rcx, qword [r14 + 8]
call fcn.1400121d0
lea rdx, str.Setup
mov rcx, rsi
call fcn.14002ae40
xor r8d, r8d
mov rdx, rsi
mov rcx, qword [r14 + 8]
call fcn.1400121d0
mov rdi, qword [r14 + 0x10]
mov rax, rdi
cmp word [rdi], 0
je 0x14002f6d4
nop
nop
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
cmp word [rax], 0
jne 0x14002f6c0
cmp rdi, rax
ja 0x14002f6ff
movzx ecx, word [rax]
cmp cx, 0x2f
je 0x14002f6ff
cmp cx, 0x5c
je 0x14002f6ff
cmp cx, 0x3a
je 0x14002f6ff
cmp rax, rdi
je 0x14002f70b
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharPrevW]
cmp rdi, rax
jbe 0x14002f6d4
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
mov rdi, rax
mov rdx, rdi
mov rcx, rsi
call fcn.14002ae40
mov rdx, rsi
mov rcx, qword [r14 + 8]
call fcn.140013c20
mov rdi, rax
test rax, rax
je 0x14002f7ba
cmp rbx, 0x7fffffff
ja 0x14002f7a8
mov rcx, rbx
test rbx, rbx
je 0x14002f7a8
nop
cmp word [rax], 0
je 0x14002f752
add rax, 2
sub rcx, 1
jne 0x14002f740
jmp 0x14002f7a8
test rcx, rcx
je 0x14002f7a8
mov rax, rbx
sub rax, rcx
je 0x14002f7a8
nop
movzx ecx, word [rdi + rax*2]
cmp cx, 0x2e
je 0x14002f778
cmp cx, 0x5c
je 0x14002f778
sub rax, 1
jne 0x14002f760
jmp 0x14002f7a8
test rax, rax
je 0x14002f7a8
lea rcx, [rdi + rax*2]
cmp word [rcx], 0x2e
jne 0x14002f7a8
lea r8, str..bak
mov rdx, rbx
call fcn.1400010e0
mov r8d, 9
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov rcx, qword [r14 + 8]
mov r8, rdi
xor edx, edx
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r8d, VariantTimeToDosDateTime
mov rdx, rsi
mov rcx, qword [r14 + 0x10]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x14002f818
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rsi
lea rcx, [r14 + 0x10]
call fcn.140003940
mov rdx, qword [r14 + 0x10]
mov qword [rsp + 0x20], rdx
lea r9, str.LogFilePath_s
lea r8, str.MoveLogFile
lea rdx, str.CLogFile
mov rcx, qword [r14]
call fcn.140080c70
jmp 0x14002f820
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rcx, qword [r14 + 8]
mov r8, rsi
xor edx, edx
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14002f839
mov ebp, 8
mov dword [rsp + 0x20], ebp
lea r9, [0x1400fb428]
lea r8, str.MoveLogFile
lea rdx, str.CLogFile
mov rcx, qword [r14]
call fcn.140080e70
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret