Function at 0x140023ef0
Capabilities:
Check if file exists
Delete directory
Delete file
Set file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x338
mov ebx, r8d
mov rsi, rdx
mov rdi, rcx
mov rax, qword [0x140145040]
xor rax, rsp
mov qword [rsp + 0x330], rax
lea r14, [rsp + 0x68]
mov r8d, 0x2c8
mov rcx, r14
mov dl, 0xaa
call fcn.1400eb280
mov qword [rsp + 0x20], rsi
xor ebp, ebp
mov rcx, r14
mov rdx, rdi
xor r8d, r8d
mov r9d, 3
call fcn.1400241a0
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x50]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [0x1401213c0]
movaps xmmword [rdi], xmm0
mov rcx, r14
mov rdx, rdi
call fcn.1400246b0
movzx eax, byte [rdi + 0x17]
mov rcx, rax
test al, al
jns 0x140023f86
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14002404e
mov byte [rsp + 0x37], bl
mov rbx, qword [sym.imp.KERNEL32.dll_GetLastError]
lea r14, [rsp + 0x68]
lea r15, [rsp + 0x38]
xor r13d, r13d
cmp byte [rsp + 0x68], 0
je 0x1400240ea
mov r12d, dword [rsp + 0x6c]
test r12b, 1
jne 0x140024106
test r12b, 0x10
jne 0x14002413a
cmp byte [rsp + 0x67], 0
mov rcx, rdi
jns 0x140023fda
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x1400240ff
call rbx
mov ebp, eax
and eax, 0xfffffffe
cmp eax, 2
mov eax, 0
cmove ebp, eax
test r13d, r13d
cmovne ebp, r13d
mov rcx, r14
mov rdx, r15
call fcn.1400246b0
cmp byte [rsp + 0x67], 0
jns 0x14002401d
mov rcx, qword [rsp + 0x50]
call fcn.1400b4d44
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rsp + 0x38]
movaps xmmword [rsp + 0x50], xmm0
movzx eax, byte [rsp + 0x67]
mov rcx, rax
test al, al
jns 0x140024042
mov rcx, qword [rsp + 0x58]
mov r13d, ebp
test rcx, rcx
jne 0x140023fa7
test al, al
jns 0x14002405c
mov rcx, qword [rsp + 0x50]
call fcn.1400b4d44
mov rcx, qword [rsp + 0x2c0]
cmp rcx, 0xffffffffffffffff
jne 0x1400240f4
lea rsi, [rsp + 0x310]
mov rdx, qword [rsi + 0x10]
mov r8, qword [rsi + 0x18]
mov rcx, rsi
call fcn.14001c290
mov rdx, qword [rsi]
lea rcx, fcn.14000ebf0
xor r8d, r8d
call fcn.140018990
cmp byte [rsi - 0x11], 0
js 0x1400240db
cmp byte [rsp + 0x2df], 0
jns 0x1400240b5
mov rcx, qword [rsp + 0x2c8]
call fcn.1400b4d44
mov rcx, qword [rsp + 0x330]
xor rcx, rsp
call fcn.1400b7310
mov eax, ebp
add rsp, 0x338
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x2e8]
call fcn.1400b4d44
jmp 0x14002409e
call fcn.1400ec9a0
jmp 0x140023fcb
call qword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x14002406e
xor ebp, ebp
jmp 0x140023ffa
test r12b, 0x10
je 0x140024119
xor ebp, ebp
cmp byte [rsp + 0x37], 0
je 0x140023ffa
test al, al
js 0x140024124
lea rcx, [rsp + 0x50]
jmp 0x140024129
mov rcx, qword [rsp + 0x50]
mov edx, r12d
and edx, 0xfffffffe
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x140023fc1
xor ebp, ebp
cmp byte [rsp + 0x37], 0
je 0x140023ffa
lea r12, [rsp + 0x50]
mov rcx, r12
mov rdx, rsi
mov r8b, 1
call fcn.140023ef0
mov ebp, eax
test eax, eax
jne 0x140023ffa
cmp byte [rsp + 0x67], 0
jns 0x140024170
mov r12, qword [rsp + 0x50]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov ebp, 0
test eax, eax
jne 0x140023ffa
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
and ecx, 0xfffffffe
xor ebp, ebp
cmp ecx, 2
cmovne ebp, eax
jmp 0x140023ffa