Function at 0x140072320
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 [0x1401f0038]
xor rax, rsp
mov qword [rsp + 0x60], rax
cmp byte [rcx + 9], 0
je 0x1400723a7
mov r14, rcx
mov r15, qword [rcx + 0x30]
test r15, r15
je 0x1400727a7
mov eax, 1
lock xadd dword [r15], eax
test eax, eax
jle 0x1400727aa
cmp eax, 0x7fffffff
je 0x1400727ad
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 [0x140224008]
mov ebp, eax
lock dec dword [r15]
jne 0x1400723a2
mov rcx, r15
call fcn.1400f1ee0
test bpl, bpl
jne 0x140072410
xor ebp, ebp
cmp byte [rdi + 0x18], 0
je 0x1400723b7
mov rcx, rdi
call fcn.1400f22a0
cmp byte [rsi + 0x18], 0
je 0x1400723c5
mov rcx, rsi
call fcn.1400f22a0
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14012d050
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.1400f1f90
cmp byte [rsi + 0x18], 0
je 0x14007274f
mov r8, qword [rsp + 0x28]
mov rcx, rbx
mov rdx, rsi
call fcn.1400727c0
mov ebp, eax
jmp 0x1400723a9
cmp byte [rdi + 0x18], 0
je 0x1400723e1
cmp byte [rsi + 0x18], 0
je 0x140072578
lea rdx, [r14 + 0x28]
lea rcx, [rsp + 0x30]
call fcn.1400f1f90
cmp byte [r14 + 9], 0
je 0x14007277b
cmp byte [rsi + 0x18], 0
je 0x14007274f
cmp byte [rdi + 0x18], 0
je 0x14007274f
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.14009a900
mov rcx, rbx
mov rdx, r14
call fcn.140098e60
mov rcx, r14
call fcn.1400f22a0
mov rcx, rbx
call fcn.140088510
test bpl, bpl
je 0x140072515
test al, al
je 0x140072515
mov word [rsp + 0x3e], 0xaaaa
mov r14, qword [0x140203c48]
test r14, r14
jne 0x1400724b8
call fcn.140046090
mov r14, rax
mov qword [0x140203c48], rax
mov ecx, 8
call fcn.14012c4a0
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.140047180
mov rcx, qword [r15]
test rcx, rcx
je 0x1400725f8
mov rax, qword [rsp + 0x50]
cmp rax, rcx
je 0x1400725ee
add rax, 0xfffffffffffffffc
jne 0x140072501
jmp 0x140072723
test al, al
jne 0x140072525
mov rcx, rbx
call fcn.14008ba60
test al, al
je 0x140072567
test bpl, bpl
jne 0x140072670
lea r14, [rsp + 0x48]
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.1400f1f90
mov r8, qword [r14]
mov rcx, rbx
mov rdx, rsi
call fcn.1400727c0
mov bpl, 1
test al, al
jne 0x140072569
cmp byte [rbx + 0x17], 0
jns 0x14007255e
mov rbx, qword [rbx]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor ebp, ebp
lea rcx, [rsp + 0x40]
call fcn.1400f1fc0
jmp 0x1400723a9
lea r14, [rsp + 0x48]
mov rcx, rbx
mov rdx, r14
mov r8, rdi
call fcn.14009a900
mov rcx, rbx
mov rdx, r14
call fcn.140098e60
mov rcx, r14
call fcn.1400f22a0
mov rcx, rbx
call fcn.140088510
test al, al
jne 0x1400725ba
mov rcx, rbx
call fcn.14008ba60
test al, al
je 0x1400723a7
mov rcx, qword [0x140203c48]
test rcx, rcx
jne 0x1400725d5
call fcn.140046090
mov rcx, rax
mov qword [0x140203c48], rax
mov rdx, rbx
mov r8d, 1
mov r9d, 0x12019f
call fcn.140046380
jmp 0x14007240c
mov qword [rsp + 0x50], rcx
call fcn.14012c4dc
cmp byte [rsp + 0x3f], 0
je 0x140072567
cmp byte [rsp + 0x3e], 0
je 0x14007265b
mov word [rsp + 0x48], 0xaaaa
mov rcx, qword [0x140203c48]
test rcx, rcx
jne 0x14007262c
call fcn.140046090
mov rcx, rax
mov qword [0x140203c48], rax
lea r14, [rsp + 0x48]
mov rdx, r14
mov r8, rbx
mov r9d, 1
call fcn.140047c70
cmp byte [r14 + 1], 0
je 0x140072567
cmp byte [rsp + 0x48], 0
jne 0x14007252e
mov bpl, 1
mov rcx, rbx
call fcn.140088160
test al, al
je 0x140072567
jmp 0x140072519
mov rcx, qword [0x140203c48]
test rcx, rcx
jne 0x14007268b
call fcn.140046090
mov rcx, rax
mov qword [0x140203c48], rax
mov rdx, rbx
mov r8d, 1
call fcn.140046610
test al, al
je 0x140072567
mov r14, qword [0x140203c48]
test r14, r14
jne 0x1400726bc
call fcn.140046090
mov r14, rax
mov qword [0x140203c48], rax
mov ecx, 8
call fcn.14012c4a0
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.1400475e0
mov ebp, eax
mov rcx, qword [r15]
test rcx, rcx
je 0x140072715
mov rax, qword [rsp + 0x50]
cmp rax, rcx
je 0x14007270b
add rax, 0xfffffffffffffffc
jne 0x1400726fe
jmp 0x140072723
mov qword [rsp + 0x50], rcx
call fcn.14012c4dc
test bpl, bpl
jne 0x14007252e
jmp 0x140072567
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.140168d70
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.140168d70
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.140168d70
int3
int3
int3