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

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x28]
sub rsp, 0x128
mov rbx, rdx
mov rsi, rcx
xor r12d, r12d
mov dword [rbp + 0x78], r12d
mov dword [rdx], r12d
lea r14, [0x1400c9098]
mov qword [rdx + 8], r14
xor r13d, r13d
lea rax, [0x1400b8384]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 1
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x40]
call fcn.1400551c0
mov qword [rbp - 0x20], r12
lea edx, [r12 + 2]
lea rcx, [rbp - 0x40]
call fcn.14004a550
lea rdx, [rbp - 0x40]
mov rcx, rsi
call fcn.14004c500
mov edi, eax
mov rdx, qword [rbp - 0x28]
cmp rdx, 7
jbe 0x1400692d1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400692cc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400692cc
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400744bc
test edi, edi
jne 0x140069305
mov dword [rsp + 0x50], 0x32
mov qword [rsp + 0x58], r14
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rbx], xmm0
mov rax, 0xffffffffffffffff
add rsp, 0x128
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov dword [rsp + 0x70], r12d
mov qword [rsp + 0x78], r14
lea r8, [rsp + 0x70]
mov rdx, rsi
lea rcx, [rbp + 0x80]
call fcn.140069820
cmp dword [rbp + 0x80], 3
jne 0x14006972a
mov ecx, 0x2e0
call fcn.140074894
mov rdx, rsi
mov rcx, rax
call fcn.14004e920
mov rdi, rax
mov qword [rsp + 0x68], rax
mov ecx, 0x18
call fcn.140074894
mov rsi, rax
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_class_fs::directory_iterator::impl_.0
mov qword [rsi], rax
mov qword [rsi + 0x10], rdi
cmp dword [rdi + 0x2d0], 0
je 0x140069389
movups xmm0, xmmword [rdi + 0x2d0]
movups xmmword [rbx], xmm0
lea r14, [rdi + 0x288]
lea rcx, [rbp - 0x18]
call fcn.14004f610
mov rdx, qword [rax]
add rdx, 0x288
mov rcx, r14
call fcn.14004c500
mov r15d, eax
mov rdi, qword [rbp - 0x10]
test rdi, rdi
je 0x1400693e6
mov eax, 0xffffffff
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x1400693e6
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x1400693e6
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
test r15d, r15d
je 0x1400696f0
cmp dword [rbx], 0
je 0x140069404
mov rcx, rbx
call fcn.14004b3a0
test al, al
je 0x1400696f0
cmp dword [r14 + 0x30], 0
je 0x140069429
xor r15d, r15d
mov dword [rbx], r15d
lea rcx, [0x1400c9098]
mov qword [rbx + 8], rcx
cmp dword [r14 + 0x30], 4
sete al
jmp 0x140069536
xor r15d, r15d
mov edi, r15d
mov rcx, r14
cmp qword [r14 + 0x18], 7
jbe 0x14006943c
mov rcx, qword [r14]
lea r8, [rbp - 8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
jne 0x140069469
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x80], eax
lea rax, [0x1400c9098]
mov qword [rbp - 0x78], rax
movups xmm0, xmmword [rbp - 0x80]
movups xmmword [rbx], xmm0
jmp 0x1400694e2
mov dword [rbx], r15d
lea rax, [0x1400c9098]
mov qword [rbx + 8], rax
mov edi, 9
mov eax, dword [rbp - 8]
bt eax, 0xa
jae 0x1400694ce
mov r8, rbx
mov rdx, r14
lea rcx, [rbp + 0x88]
call fcn.14004ac90
mov rcx, qword [rbp + 0x88]
cmp dword [rbx], r15d
jne 0x1400694bb
test rcx, rcx
je 0x1400694c6
mov eax, dword [rcx]
test eax, eax
jns 0x1400694bb
cmp eax, 0xa000000c
mov eax, 4
cmove edi, eax
test rcx, rcx
je 0x1400694c6
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp edi, 9
jne 0x1400694da
mov eax, dword [rbp - 8]
movzx edi, al
and edi, 0x10
or edi, 0x20
shr edi, 4
mov rcx, r14
call fcn.14004d000
mov edx, dword [rbx]
cmp edx, 2
je 0x140069520
cmp edx, 3
je 0x140069520
cmp edx, 0x7b
je 0x140069520
test edx, edx
je 0x140069500
or r12d, 1
mov edi, r15d
jmp 0x140069504
or r12d, 2
mov ecx, r12d
mov eax, r12d
and r12d, 0xfffffffd
test al, 2
cmove r12d, eax
test r12b, 1
je 0x140069525
and r12d, 0xfffffffe
jmp 0x140069525
mov edi, 1
cmp edi, 4
sete al
test edx, edx
jne 0x14006959b
lea rcx, [0x1400c9098]
test al, al
jne 0x1400695d7
cmp dword [r14 + 0x28], 0
je 0x140069552
mov dword [rbx], r15d
mov qword [rbx + 8], rcx
mov eax, dword [r14 + 0x28]
jmp 0x14006957f
mov dword [rsp + 0x38], r15d
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x20], r15
xor r9d, r9d
mov r8, rbx
mov rdx, r14
lea rcx, [rsp + 0x60]
call fcn.14004b3c0
mov eax, dword [rsp + 0x60]
lea rcx, [0x1400c9098]
cmp eax, 3
jne 0x1400695d7
mov rdx, rbx
mov rcx, r14
call fcn.140069210
add r13, rax
cmp dword [rbx], 0
je 0x1400696dd
mov eax, 0xffffffff
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x1400692ea
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x1400692ea
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
jmp 0x1400692ea
cmp dword [rbx], 0
jne 0x14006959b
mov dword [rbx], r15d
mov qword [rbx + 8], rcx
mov rdi, r14
cmp qword [r14 + 0x18], 7
jbe 0x1400695f0
mov rdi, qword [r14]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov r15d, eax
cmp eax, 0xffffffff
jne 0x140069635
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
add eax, 0xfffffffe
cmp eax, 1
jbe 0x1400696d1
test ecx, ecx
jne 0x140069621
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rbp - 0x70], ecx
lea rax, [0x1400c9098]
mov qword [rbp - 0x68], rax
movups xmm0, xmmword [rbp - 0x70]
jmp 0x140069670
test r15b, 1
je 0x140069673
mov edx, r15d
and edx, 0xfffffffe
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x140069673
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14006965e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x60], eax
lea rax, [0x1400c9098]
mov qword [rbp - 0x58], rax
movups xmm0, xmmword [rbp - 0x60]
movups xmmword [rbx], xmm0
cmp dword [rbx], 0
jne 0x14006959b
mov rcx, rdi
test r15b, 0x10
je 0x1400696a9
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x1400696d1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x50], eax
lea rax, [0x1400c9098]
mov qword [rbp - 0x48], rax
movups xmm0, xmmword [rbp - 0x50]
jmp 0x1400696ce
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x1400696d1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x40], eax
lea rax, [0x1400c9098]
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rbx], xmm0
cmp dword [rbx], 0
jne 0x14006959b
inc r13
mov rdx, rbx
mov rcx, qword [rsp + 0x68]
call fcn.14004f180
nop
jmp 0x140069390
mov eax, 0xffffffff
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x14006971f
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x14006971f
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
mov rsi, qword [rbp + 0x70]
lea r14, [0x1400c9098]
cmp dword [rbx], 0
jne 0x1400692ea
mov dword [rbx], 0
mov qword [rbx + 8], r14
cmp qword [rsi + 0x18], 7
jbe 0x140069747
mov rsi, qword [rsi]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
cmp eax, 0xffffffff
jne 0x14006977d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
add eax, 0xfffffffe
cmp eax, 1
jbe 0x140069805
test ecx, ecx
jne 0x140069777
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rsp + 0x40], ecx
jmp 0x1400697a9
test dil, 1
je 0x1400697b6
mov edx, edi
and edx, 0xfffffffe
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x1400697b6
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1400697a5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x48], r14
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rbx], xmm0
cmp dword [rbx], 0
jne 0x1400692ea
mov rcx, rsi
test dil, 0x10
je 0x1400697d0
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x1400697d6
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x1400697f1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x48], r14
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rbx], xmm0
cmp dword [rbx], 0
jne 0x1400692ea
inc r13
mov rax, r13
jmp 0x1400692f1
cmp dword [rbx], 0
jne 0x1400692ea
mov rax, r13
jmp 0x1400692f1