Function at 0x14012a680
Capabilities:
Move file

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xf0
mov rax, qword [0x14058f6b8]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rsi, r8
mov r14, rdx
mov r15, rcx
mov qword [rbp - 0x41], rcx
xor ebx, ebx
mov dword [rbp - 0x79], ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x1388
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ktmw32.dll_CreateTransaction]
mov qword [rbp - 0x49], rbx
mov edi, ebx
cmp rax, 0xffffffffffffffff
cmovne rdi, rax
mov qword [rbp - 0x49], rdi
test rdi, rdi
jne 0x14012a80f
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.CreateTransaction_failed:__d
mov qword [rbp - 0x59], rcx
mov qword [rbp - 0x51], 0x1c
mov dword [rbp - 0x69], eax
mov rax, qword [rbp - 0x69]
mov qword [rbp - 9], rax
lea rax, [0x140138b70]
mov qword [rbp - 1], rax
lea rax, [rbp - 9]
mov qword [rbp - 0x69], rax
mov qword [rbp - 0x61], 1
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], rbx
lea rcx, [rbp - 0x29]
call fcn.14007d020
nop
mov edi, 4
mov dword [rbp - 0x79], edi
lea rax, [rbp - 0x29]
mov qword [rbp - 0x39], rax
lea rax, [0x140139550]
mov qword [rbp - 0x31], rax
movaps xmm0, xmmword [rbp - 0x69]
movdqa xmmword [rbp - 0x69], xmm0
movaps xmm1, xmmword [rbp - 0x59]
movdqa xmmword [rbp - 0x59], xmm1
movaps xmm0, xmmword [rbp - 0x39]
movdqa xmmword [rbp - 0x39], xmm0
lea r8, [rbp - 0x69]
lea rdx, [rbp - 0x59]
lea rcx, [rbp - 0x39]
call fcn.140139300
test al, al
jne 0x14012a7a8
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rax, qword [rbp - 0x29]
mov qword [rbp - 0x19], rbx
mov byte [rax], bl
and edi, 0xfffffffb
mov dword [rbp - 0x79], edi
or edi, 2
mov dword [rbp - 0x79], edi
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rax, qword [rbp - 0x29]
mov qword [rbp - 0x39], rax
mov rax, qword [rbp - 0x19]
mov qword [rbp - 0x31], rax
movaps xmm0, xmmword [rbp - 0x39]
movdqa xmmword [rbp - 0x39], xmm0
lea r8, [rbp - 0x39]
mov edx, 2
mov rcx, r15
call fcn.140136090
or edi, 8
mov dword [rbp - 0x79], edi
and edi, 0xfffffff7
mov dword [rbp - 0x79], edi
or edi, 1
mov dword [rbp - 0x79], edi
and edi, 0xfffffffd
mov dword [rbp - 0x79], edi
lea rcx, [rbp - 0x29]
call fcn.14007cfc0
nop
jmp 0x14012ad51
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 7], xmm0
movups xmmword [rbp + 0x17], xmm0
mov dword [rbp + 0x27], eax
mov rcx, r14
cmp qword [r14 + 0x18], 8
jb 0x14012a82c
mov rcx, qword [r14]
mov r9, rdi
lea r8, [rbp + 7]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesTransactedW]
test eax, eax
jne 0x14012a95f
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.GetFileAttributesTransactedW_failed:__d
mov qword [rbp - 9], rcx
mov qword [rbp - 1], 0x27
mov dword [rbp - 0x69], eax
mov rax, qword [rbp - 0x69]
mov qword [rbp - 0x39], rax
lea rax, [0x140138b70]
mov qword [rbp - 0x31], rax
lea rax, [rbp - 0x39]
mov qword [rbp - 0x59], rax
mov qword [rbp - 0x51], 1
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], rbx
lea rcx, [rbp - 0x29]
call fcn.14007d020
nop
mov esi, 0x20
mov dword [rbp - 0x79], esi
lea rax, [rbp - 0x29]
mov qword [rbp - 0x69], rax
lea rax, [0x140139550]
mov qword [rbp - 0x61], rax
movaps xmm0, xmmword [rbp - 0x59]
movdqa xmmword [rbp - 0x59], xmm0
movaps xmm1, xmmword [rbp - 9]
movdqa xmmword [rbp - 9], xmm1
movaps xmm0, xmmword [rbp - 0x69]
movdqa xmmword [rbp - 0x69], xmm0
lea r8, [rbp - 0x59]
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x69]
call fcn.140139300
test al, al
jne 0x14012a8f8
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rax, qword [rbp - 0x29]
mov qword [rbp - 0x19], rbx
mov byte [rax], 0
and esi, 0xffffffdf
mov dword [rbp - 0x79], esi
or esi, 0x10
mov dword [rbp - 0x79], esi
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rax, qword [rbp - 0x29]
mov qword [rbp - 0x39], rax
mov rax, qword [rbp - 0x19]
mov qword [rbp - 0x31], rax
movaps xmm0, xmmword [rbp - 0x39]
movdqa xmmword [rbp - 0x39], xmm0
lea r8, [rbp - 0x39]
mov edx, 2
mov rcx, r15
call fcn.140136090
or esi, 0x40
mov dword [rbp - 0x79], esi
and esi, 0xffffffbf
mov dword [rbp - 0x79], esi
or esi, 1
mov dword [rbp - 0x79], esi
and esi, 0xffffffef
mov dword [rbp - 0x79], esi
lea rcx, [rbp - 0x29]
call fcn.14007cfc0
nop
jmp 0x14012ad44
mov rdx, rsi
cmp qword [rsi + 0x18], 8
jb 0x14012a96c
mov rdx, qword [rsi]
cmp qword [r14 + 0x18], 8
jb 0x14012a976
mov r14, qword [r14]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_MoveFileTransactedW]
test eax, eax
jne 0x14012aabb
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.MoveFileTransactedW_failed:__d
mov qword [rbp - 9], rcx
mov qword [rbp - 1], 0x1e
mov dword [rbp - 0x69], eax
mov rax, qword [rbp - 0x69]
mov qword [rbp - 0x39], rax
lea rax, [0x140138b70]
mov qword [rbp - 0x31], rax
lea rax, [rbp - 0x39]
mov qword [rbp - 0x59], rax
mov qword [rbp - 0x51], 1
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], rbx
lea rcx, [rbp - 0x29]
call fcn.14007d020
nop
mov esi, 0x100
mov dword [rbp - 0x79], esi
lea rax, [rbp - 0x29]
mov qword [rbp - 0x69], rax
lea rax, [0x140139550]
mov qword [rbp - 0x61], rax
movaps xmm0, xmmword [rbp - 0x59]
movdqa xmmword [rbp - 0x59], xmm0
movaps xmm1, xmmword [rbp - 9]
movdqa xmmword [rbp - 9], xmm1
movaps xmm0, xmmword [rbp - 0x69]
movdqa xmmword [rbp - 0x69], xmm0
lea r8, [rbp - 0x59]
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x69]
call fcn.140139300
test al, al
jne 0x14012aa4f
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rax, qword [rbp - 0x29]
mov qword [rbp - 0x19], rbx
mov byte [rax], 0
btr esi, 8
mov dword [rbp - 0x79], esi
bts esi, 7
mov dword [rbp - 0x79], esi
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rax, qword [rbp - 0x29]
mov qword [rbp - 0x39], rax
mov rax, qword [rbp - 0x19]
mov qword [rbp - 0x31], rax
movaps xmm0, xmmword [rbp - 0x39]
movdqa xmmword [rbp - 0x39], xmm0
lea r8, [rbp - 0x39]
mov edx, 2
mov rcx, r15
call fcn.140136090
bts esi, 9
mov dword [rbp - 0x79], esi
btr esi, 9
mov dword [rbp - 0x79], esi
or esi, 1
mov dword [rbp - 0x79], esi
btr esi, 7
mov dword [rbp - 0x79], esi
lea rcx, [rbp - 0x29]
call fcn.14007cfc0
nop
jmp 0x14012ad44
cmp qword [rsi + 0x18], 8
jb 0x14012aac5
mov rsi, qword [rsi]
mov r8, rdi
mov edx, dword [rbp + 7]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetFileAttributesTransactedW]
test eax, eax
jne 0x14012abfd
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.SetFileAttributesTransactedW_failed:__d
mov qword [rbp - 9], rcx
mov qword [rbp - 1], 0x27
mov dword [rbp - 0x69], eax
mov rax, qword [rbp - 0x69]
mov qword [rbp - 0x39], rax
lea rax, [0x140138b70]
mov qword [rbp - 0x31], rax
lea rax, [rbp - 0x39]
mov qword [rbp - 0x59], rax
mov qword [rbp - 0x51], 1
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], rbx
lea rcx, [rbp - 0x29]
call fcn.14007d020
nop
mov esi, 0x800
mov dword [rbp - 0x79], esi
lea rax, [rbp - 0x29]
mov qword [rbp - 0x69], rax
lea rax, [0x140139550]
mov qword [rbp - 0x61], rax
movaps xmm0, xmmword [rbp - 0x59]
movdqa xmmword [rbp - 0x59], xmm0
movaps xmm1, xmmword [rbp - 9]
movdqa xmmword [rbp - 9], xmm1
movaps xmm0, xmmword [rbp - 0x69]
movdqa xmmword [rbp - 0x69], xmm0
lea r8, [rbp - 0x59]
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x69]
call fcn.140139300
test al, al
jne 0x14012ab91
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rax, qword [rbp - 0x29]
mov qword [rbp - 0x19], rbx
mov byte [rax], 0
btr esi, 0xb
mov dword [rbp - 0x79], esi
bts esi, 0xa
mov dword [rbp - 0x79], esi
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rax, qword [rbp - 0x29]
mov qword [rbp - 0x39], rax
mov rax, qword [rbp - 0x19]
mov qword [rbp - 0x31], rax
movaps xmm0, xmmword [rbp - 0x39]
movdqa xmmword [rbp - 0x39], xmm0
lea r8, [rbp - 0x39]
mov edx, 2
mov rcx, r15
call fcn.140136090
bts esi, 0xc
mov dword [rbp - 0x79], esi
btr esi, 0xc
mov dword [rbp - 0x79], esi
or esi, 1
mov dword [rbp - 0x79], esi
btr esi, 0xa
mov dword [rbp - 0x79], esi
lea rcx, [rbp - 0x29]
call fcn.14007cfc0
nop
jmp 0x14012ad44
mov rcx, rdi
call qword [sym.imp.ktmw32.dll_CommitTransaction]
test eax, eax
jne 0x14012ad2c
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.CommitTransaction_failed:__d
mov qword [rbp - 9], rcx
mov qword [rbp - 1], 0x1c
mov dword [rbp - 0x69], eax
mov rax, qword [rbp - 0x69]
mov qword [rbp - 0x39], rax
lea rax, [0x140138b70]
mov qword [rbp - 0x31], rax
lea rax, [rbp - 0x39]
mov qword [rbp - 0x59], rax
mov qword [rbp - 0x51], 1
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
mov qword [rbp - 0x11], rbx
lea rcx, [rbp - 0x29]
call fcn.14007d020
nop
mov esi, 0x4000
mov dword [rbp - 0x79], esi
lea rax, [rbp - 0x29]
mov qword [rbp - 0x69], rax
lea rax, [0x140139550]
mov qword [rbp - 0x61], rax
movaps xmm0, xmmword [rbp - 0x59]
movdqa xmmword [rbp - 0x59], xmm0
movaps xmm1, xmmword [rbp - 9]
movdqa xmmword [rbp - 9], xmm1
movaps xmm0, xmmword [rbp - 0x69]
movdqa xmmword [rbp - 0x69], xmm0
lea r8, [rbp - 0x59]
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x69]
call fcn.140139300
test al, al
jne 0x14012acc3
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rax, qword [rbp - 0x29]
mov qword [rbp - 0x19], rbx
mov byte [rax], 0
btr esi, 0xe
mov dword [rbp - 0x79], esi
bts esi, 0xd
mov dword [rbp - 0x79], esi
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rax, qword [rbp - 0x29]
mov qword [rbp - 0x39], rax
mov rax, qword [rbp - 0x19]
mov qword [rbp - 0x31], rax
movaps xmm0, xmmword [rbp - 0x39]
movdqa xmmword [rbp - 0x39], xmm0
lea r8, [rbp - 0x39]
mov edx, 2
mov rcx, r15
call fcn.140136090
bts esi, 0xf
mov dword [rbp - 0x79], esi
btr esi, 0xf
mov dword [rbp - 0x79], esi
or esi, 1
mov dword [rbp - 0x79], esi
btr esi, 0xd
mov dword [rbp - 0x79], esi
lea rcx, [rbp - 0x29]
call fcn.14007cfc0
nop
jmp 0x14012ad44
mov qword [r15], rbx
mov eax, 0x10000
mov dword [rbp - 0x79], eax
btr eax, 0x10
mov dword [rbp - 0x79], eax
or eax, 1
mov dword [rbp - 0x79], eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp - 0x49], rbx
mov rax, r15
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.140398000
mov rbx, qword [rsp + 0x138]
add rsp, 0xf0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret