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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x140]
sub rsp, 0x240
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x290], rbx
mov rax, qword [0x18011a300]
xor rax, rsp
mov qword [rbp + 0x130], rax
mov r13, r9
mov r15d, r8d
mov rbx, rdx
mov r14, rcx
xor r12d, r12d
mov edi, r12d
test rcx, rcx
je 0x180015e79
test rdx, rdx
je 0x180015e79
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov esi, eax
test r15d, r15d
je 0x180015caa
cmp eax, 0xffffffff
jne 0x180015e79
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.18002b2f0
nop
lea rdx, str._tmp
lea rcx, [rsp + 0x20]
call fcn.180027ea0
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
xor r8d, r8d
mov rdx, qword [rsp + 0x20]
mov rcx, r14
call fcn.180015b00
mov edi, eax
test eax, eax
je 0x180015e6f
test r13, r13
je 0x180015d15
mov rdx, qword [rsp + 0x20]
mov rcx, r14
call r13
mov edi, eax
test eax, eax
jne 0x180015d15
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
nop
jmp 0x180015e6f
mov r8d, 1
mov rdx, rbx
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_MoveFileExA]
mov edi, eax
test eax, eax
jne 0x180015e6d
cmp esi, 0xffffffff
je 0x180015e5f
test sil, 1
je 0x180015d50
and esi, 0xfffffffe
mov edx, esi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov byte [rsp + 0x30], 0
xor edx, edx
mov r8d, 0x1ff
lea rcx, [rsp + 0x31]
call fcn.180043ef0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r9d, eax
mov r8, rbx
lea rdx, str._s.bak_08X
lea rcx, [rsp + 0x30]
call fcn.180043b88
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x180015de8
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r9d, eax
mov r8, rbx
lea rdx, str._s.bak_08X
lea rcx, [rsp + 0x30]
call fcn.180043b88
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
inc r12d
cmp r12d, 0xa
jge 0x180015dd7
cmp eax, 0xffffffff
jne 0x180015d94
jmp 0x180015de8
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
nop
jmp 0x180015e6f
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_MoveFileA]
mov r8d, 1
mov rdx, rbx
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_MoveFileExA]
mov edi, eax
test eax, eax
jne 0x180015e4b
cmp dword [rbp + 0x1a0], eax
je 0x180015e30
lea r8d, [rax + 5]
mov rdx, rbx
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_MoveFileExA]
mov edi, eax
test eax, eax
jne 0x180015e4b
mov rdx, rbx
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_MoveFileA]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x180015e5d
xor edx, edx
lea r8d, [rdx + 4]
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_MoveFileExA]
nop
jmp 0x180015e6f
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
nop
jmp 0x180015e6f
jmp 0x180015e6f
lea rcx, [rsp + 0x20]
call fcn.180027bd0
mov eax, edi
mov rcx, qword [rbp + 0x130]
xor rcx, rsp
call fcn.180043ec0
mov rbx, qword [rsp + 0x290]
add rsp, 0x240
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret