Function at 0x1400709c0
Capabilities:
Delete directory

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rsi, r8
mov rdi, rdx
mov rax, qword [0x1401eb038]
xor rax, rsp
mov qword [rsp + 0x60], rax
cmp byte [rcx + 9], 0
je 0x140070a47
mov r14, rcx
mov r15, qword [rcx + 0x30]
test r15, r15
je 0x140070e47
mov eax, 1
lock xadd dword [r15], eax
test eax, eax
jle 0x140070e4a
cmp eax, 0x7fffffff
je 0x140070e4d
mov rbx, r9
mov edx, dword [rsp + 0xc0]
mov rax, qword [r14 + 0x30]
mov rax, qword [rax + 8]
mov rcx, r15
mov r8, r9
call qword [0x14021d008]
mov ebp, eax
lock dec dword [r15]
jne 0x140070a42
mov rcx, r15
call fcn.1400ecd40
test bpl, bpl
jne 0x140070ab0
xor ebp, ebp
cmp byte [rdi + 0x18], 0
je 0x140070a57
mov rcx, rdi
call fcn.1400ed100
cmp byte [rsi + 0x18], 0
je 0x140070a65
mov rcx, rsi
call fcn.1400ed100
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140127eb0
mov eax, ebp
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
add r14, 0x28
lea rcx, [rsp + 0x28]
mov rdx, r14
call fcn.1400ecdf0
cmp byte [rsi + 0x18], 0
je 0x140070def
mov r8, qword [rsp + 0x28]
mov rcx, rbx
mov rdx, rsi
call fcn.140070e60
mov ebp, eax
jmp 0x140070a49
cmp byte [rdi + 0x18], 0
je 0x140070a81
cmp byte [rsi + 0x18], 0
je 0x140070c18
lea rdx, [r14 + 0x28]
lea rcx, [rsp + 0x30]
call fcn.1400ecdf0
cmp byte [r14 + 9], 0
je 0x140070e1b
cmp byte [rsi + 0x18], 0
je 0x140070def
cmp byte [rdi + 0x18], 0
je 0x140070def
mov bpl, byte [r14 + 8]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x40], rax
lea r14, [rsp + 0x48]
mov rcx, rbx
mov rdx, r14
mov r8, rdi
call fcn.140095a20
mov rcx, rbx
mov rdx, r14
call fcn.140093f80
mov rcx, r14
call fcn.1400ed100
mov rcx, rbx
call fcn.1400842a0
test bpl, bpl
je 0x140070bb5
test al, al
je 0x140070bb5
mov word [rsp + 0x3e], 0xaaaa
mov r14, qword [0x1401fe978]
test r14, r14
jne 0x140070b58
call fcn.1400449c0
mov r14, rax
mov qword [0x1401fe978], rax
mov ecx, 8
call fcn.140127300
lea r15, [rsp + 0x48]
mov qword [r15], rax
lea rcx, [rax + 8]
mov qword [r15 + 0x10], rcx
mov qword [rax], 2
mov qword [r15 + 8], rcx
lea rdx, [rsp + 0x3e]
mov rcx, r14
mov r8, rbx
mov r9, r15
call fcn.140045ab0
mov rcx, qword [r15]
test rcx, rcx
je 0x140070c98
mov rax, qword [rsp + 0x50]
cmp rax, rcx
je 0x140070c8e
add rax, 0xfffffffffffffffc
jne 0x140070ba1
jmp 0x140070dc3
test al, al
jne 0x140070bc5
mov rcx, rbx
call fcn.1400875a0
test al, al
je 0x140070c07
test bpl, bpl
jne 0x140070d10
lea r14, [rsp + 0x48]
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.1400ecdf0
mov r8, qword [r14]
mov rcx, rbx
mov rdx, rsi
call fcn.140070e60
mov bpl, 1
test al, al
jne 0x140070c09
cmp byte [rbx + 0x17], 0
jns 0x140070bfe
mov rbx, qword [rbx]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor ebp, ebp
lea rcx, [rsp + 0x40]
call fcn.1400ece20
jmp 0x140070a49
lea r14, [rsp + 0x48]
mov rcx, rbx
mov rdx, r14
mov r8, rdi
call fcn.140095a20
mov rcx, rbx
mov rdx, r14
call fcn.140093f80
mov rcx, r14
call fcn.1400ed100
mov rcx, rbx
call fcn.1400842a0
test al, al
jne 0x140070c5a
mov rcx, rbx
call fcn.1400875a0
test al, al
je 0x140070a47
mov rcx, qword [0x1401fe978]
test rcx, rcx
jne 0x140070c75
call fcn.1400449c0
mov rcx, rax
mov qword [0x1401fe978], rax
mov rdx, rbx
mov r8d, 1
mov r9d, 0x12019f
call fcn.140044cb0
jmp 0x140070aac
mov qword [rsp + 0x50], rcx
call fcn.14012733c
cmp byte [rsp + 0x3f], 0
je 0x140070c07
cmp byte [rsp + 0x3e], 0
je 0x140070cfb
mov word [rsp + 0x48], 0xaaaa
mov rcx, qword [0x1401fe978]
test rcx, rcx
jne 0x140070ccc
call fcn.1400449c0
mov rcx, rax
mov qword [0x1401fe978], rax
lea r14, [rsp + 0x48]
mov rdx, r14
mov r8, rbx
mov r9d, 1
call fcn.1400465a0
cmp byte [r14 + 1], 0
je 0x140070c07
cmp byte [rsp + 0x48], 0
jne 0x140070bce
mov bpl, 1
mov rcx, rbx
call fcn.140083ef0
test al, al
je 0x140070c07
jmp 0x140070bb9
mov rcx, qword [0x1401fe978]
test rcx, rcx
jne 0x140070d2b
call fcn.1400449c0
mov rcx, rax
mov qword [0x1401fe978], rax
mov rdx, rbx
mov r8d, 1
call fcn.140044f40
test al, al
je 0x140070c07
mov r14, qword [0x1401fe978]
test r14, r14
jne 0x140070d5c
call fcn.1400449c0
mov r14, rax
mov qword [0x1401fe978], rax
mov ecx, 8
call fcn.140127300
lea r15, [rsp + 0x48]
mov qword [r15], rax
lea rcx, [rax + 8]
mov qword [r15 + 0x10], rcx
mov qword [rax], 2
mov qword [r15 + 8], rcx
mov rcx, r14
mov rdx, rbx
mov r8, r15
call fcn.140045f10
mov ebp, eax
mov rcx, qword [r15]
test rcx, rcx
je 0x140070db5
mov rax, qword [rsp + 0x50]
cmp rax, rcx
je 0x140070dab
add rax, 0xfffffffffffffffc
jne 0x140070d9e
jmp 0x140070dc3
mov qword [rsp + 0x50], rcx
call fcn.14012733c
test bpl, bpl
jne 0x140070bce
jmp 0x140070c07
lea rax, str.null_pointer_given_to_destroy_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__loc___nullptr
mov r8d, 0x44
call fcn.140163bd0
lea rax, str.optional_operator_called_on_a_disengaged_value
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcincludeoptional
lea r9, str.this__has_value__
mov r8d, 0x402
call fcn.140163bd0
lea rax, str.optional_operator_called_on_a_disengaged_value
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcincludeoptional
lea r9, str.this__has_value__
mov r8d, 0x3f9
call fcn.140163bd0
int3
int3
int3