Function at 0x100114e88
Capabilities:
Check if file exists
Get file attributes
Move file
Set file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x40
xor edi, edi
mov ebx, r8d
mov r13, rdx
and qword [rax + 8], rdi
and dword [rcx], edi
mov rbp, rcx
mov qword [rax + 0x10], rdi
lea r15, [0x100331948]
test rdx, rdx
je 0x100114f00
lea rdx, [rax + 0x10]
mov rcx, r13
call fcn.10005058c
mov rdi, qword [rsp + 0x78]
mov esi, eax
test eax, eax
js 0x1001151eb
lea r8, [0x1000404e4]
lea rcx, [rsp + 0x70]
mov rdx, rdi
call fcn.1001188e0
mov esi, eax
test eax, eax
js 0x1001151eb
mov r12, qword [rsp + 0x70]
jmp 0x100114f08
mov r13, qword [rcx + 0x10]
mov r12, qword [rcx + 0x18]
test ebx, ebx
je 0x100114f22
mov rdx, r13
mov rcx, rbp
call fcn.10011182c
mov rdx, r12
mov rcx, rbp
call fcn.10011182c
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x100114f5c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x100114f82
test eax, eax
jne 0x100114f49
mov esi, 0x80004005
jmp 0x1001151eb
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
jmp 0x1001151e7
mov rdx, r13
mov rcx, rbp
call fcn.10011182c
xor r8d, r8d
mov rdx, r13
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x100114f82
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x100114f3b
mov r9, r13
mov edx, 0x80000000
mov r8d, 3
mov rcx, rbp
call fcn.100116a70
mov esi, eax
test eax, eax
jns 0x100114fc8
mov rcx, qword [0x100331948]
cmp rcx, r15
je 0x100114fcf
test byte [rcx + 0x3c], 2
je 0x100114fcf
mov rcx, qword [rcx + 0x30]
lea r8, [0x100020478]
mov edx, 0x1b
mov r9d, eax
call fcn.100050618
mov rcx, qword [0x100331948]
cmp esi, 0x80070002
jne 0x10011517c
mov r15d, 4
test ebx, ebx
jne 0x100115023
lea rax, [0x100331948]
cmp rcx, rax
je 0x100115012
mov eax, dword [rcx + 0x3c]
mov edx, 0x8000004
and eax, edx
cmp eax, edx
jne 0x100115012
mov rcx, qword [rcx + 0x30]
lea edx, [rbx + 0xd]
lea r8, [0x100020478]
call fcn.10010e928
mov edx, r15d
mov r8d, 0x4000200e
mov rcx, rbp
call fcn.1001160d8
xor esi, esi
xor r9d, r9d
mov edx, 0xc0000000
and qword [rsp + 0x30], rsi
lea r8d, [rsi + 1]
mov rcx, r12
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
test rax, rax
je 0x10011507c
cmp rax, 0xffffffffffffffff
je 0x10011507c
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1001150d6
bts eax, 0xd
mov rcx, r12
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x10011509f
or rbx, 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x100115091
mov esi, 0x80004005
jmp 0x1001150a3
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
test esi, esi
jns 0x1001150d6
mov rcx, qword [0x100331948]
lea r12, [0x100331948]
cmp rcx, r12
je 0x1001150e4
test byte [rcx + 0x3c], 2
je 0x1001150e4
mov rcx, qword [rcx + 0x30]
lea r8, [0x100020478]
mov edx, 0x1a
mov r9d, esi
call fcn.100050618
jmp 0x1001150dd
lea r12, [0x100331948]
mov rcx, qword [0x100331948]
test rbx, rbx
je 0x1001150ff
cmp rbx, 0xffffffffffffffff
je 0x1001150ff
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x100331948]
test esi, esi
js 0x1001151f2
mov r9, r13
mov r8d, r15d
mov edx, 0xc0000000
mov rcx, rbp
call fcn.100116a70
mov esi, eax
test eax, eax
jns 0x10011514a
mov rcx, qword [0x100331948]
cmp rcx, r12
je 0x100115151
test byte [rcx + 0x3c], 2
je 0x100115151
mov rcx, qword [rcx + 0x30]
lea r8, [0x100020478]
mov edx, 0x1c
mov r9d, eax
call fcn.100050618
mov rcx, qword [0x100331948]
test esi, esi
js 0x1001151f2
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x100115176
bts eax, 0xd
mov rcx, r13
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
and dword [rbp + 0x20], 0
jmp 0x100115187
test esi, esi
js 0x1001151f2
mov dword [rbp + 0x20], 1
test rdi, rdi
je 0x1001151e7
mov rbx, qword [rbp + 0x10]
mov r12, rdi
xor edi, edi
test rbx, rbx
je 0x1001151b3
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea r8, [rbx - 4]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
and qword [rbp + 0x10], rdi
mov qword [rbp + 0x10], r12
mov rbx, qword [rbp + 0x18]
mov r12, qword [rsp + 0x70]
and qword [rsp + 0x70], rdi
test rbx, rbx
je 0x1001151e3
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea r8, [rbx - 4]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
and qword [rbp + 0x18], rdi
mov qword [rbp + 0x18], r12
test esi, esi
jns 0x10011521c
mov rcx, qword [0x100331948]
lea rax, [0x100331948]
cmp rcx, rax
je 0x10011521c
test byte [rcx + 0x3c], 2
je 0x10011521c
mov rcx, qword [rcx + 0x30]
lea r8, [0x100020478]
mov edx, 0xe
mov r9d, esi
call fcn.100050618
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x100115244
lea rbx, [rax - 4]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
and qword [rsp + 0x70], 0
test rdi, rdi
je 0x10011525e
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea r8, [rdi - 4]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea r11, [rsp + 0x40]
mov eax, esi
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret