Function at 0x140072220
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 0x1400722a7
mov r14, rcx
mov r15, qword [rcx + 0x30]
test r15, r15
je 0x1400726a7
mov eax, 1
lock xadd dword [r15], eax
test eax, eax
jle 0x1400726aa
cmp eax, 0x7fffffff
je 0x1400726ad
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 0x1400722a2
mov rcx, r15
call fcn.1400f1de0
test bpl, bpl
jne 0x140072310
xor ebp, ebp
cmp byte [rdi + 0x18], 0
je 0x1400722b7
mov rcx, rdi
call fcn.1400f21a0
cmp byte [rsi + 0x18], 0
je 0x1400722c5
mov rcx, rsi
call fcn.1400f21a0
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14012cf50
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.1400f1e90
cmp byte [rsi + 0x18], 0
je 0x14007264f
mov r8, qword [rsp + 0x28]
mov rcx, rbx
mov rdx, rsi
call fcn.1400726c0
mov ebp, eax
jmp 0x1400722a9
cmp byte [rdi + 0x18], 0
je 0x1400722e1
cmp byte [rsi + 0x18], 0
je 0x140072478
lea rdx, [r14 + 0x28]
lea rcx, [rsp + 0x30]
call fcn.1400f1e90
cmp byte [r14 + 9], 0
je 0x14007267b
cmp byte [rsi + 0x18], 0
je 0x14007264f
cmp byte [rdi + 0x18], 0
je 0x14007264f
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.14009a800
mov rcx, rbx
mov rdx, r14
call fcn.140098d60
mov rcx, r14
call fcn.1400f21a0
mov rcx, rbx
call fcn.140088410
test bpl, bpl
je 0x140072415
test al, al
je 0x140072415
mov word [rsp + 0x3e], 0xaaaa
mov r14, qword [0x140203b58]
test r14, r14
jne 0x1400723b8
call fcn.140045f90
mov r14, rax
mov qword [0x140203b58], rax
mov ecx, 8
call fcn.14012c3a0
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.140047080
mov rcx, qword [r15]
test rcx, rcx
je 0x1400724f8
mov rax, qword [rsp + 0x50]
cmp rax, rcx
je 0x1400724ee
add rax, 0xfffffffffffffffc
jne 0x140072401
jmp 0x140072623
test al, al
jne 0x140072425
mov rcx, rbx
call fcn.14008b960
test al, al
je 0x140072467
test bpl, bpl
jne 0x140072570
lea r14, [rsp + 0x48]
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.1400f1e90
mov r8, qword [r14]
mov rcx, rbx
mov rdx, rsi
call fcn.1400726c0
mov bpl, 1
test al, al
jne 0x140072469
cmp byte [rbx + 0x17], 0
jns 0x14007245e
mov rbx, qword [rbx]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor ebp, ebp
lea rcx, [rsp + 0x40]
call fcn.1400f1ec0
jmp 0x1400722a9
lea r14, [rsp + 0x48]
mov rcx, rbx
mov rdx, r14
mov r8, rdi
call fcn.14009a800
mov rcx, rbx
mov rdx, r14
call fcn.140098d60
mov rcx, r14
call fcn.1400f21a0
mov rcx, rbx
call fcn.140088410
test al, al
jne 0x1400724ba
mov rcx, rbx
call fcn.14008b960
test al, al
je 0x1400722a7
mov rcx, qword [0x140203b58]
test rcx, rcx
jne 0x1400724d5
call fcn.140045f90
mov rcx, rax
mov qword [0x140203b58], rax
mov rdx, rbx
mov r8d, 1
mov r9d, 0x12019f
call fcn.140046280
jmp 0x14007230c
mov qword [rsp + 0x50], rcx
call fcn.14012c3dc
cmp byte [rsp + 0x3f], 0
je 0x140072467
cmp byte [rsp + 0x3e], 0
je 0x14007255b
mov word [rsp + 0x48], 0xaaaa
mov rcx, qword [0x140203b58]
test rcx, rcx
jne 0x14007252c
call fcn.140045f90
mov rcx, rax
mov qword [0x140203b58], rax
lea r14, [rsp + 0x48]
mov rdx, r14
mov r8, rbx
mov r9d, 1
call fcn.140047b70
cmp byte [r14 + 1], 0
je 0x140072467
cmp byte [rsp + 0x48], 0
jne 0x14007242e
mov bpl, 1
mov rcx, rbx
call fcn.140088060
test al, al
je 0x140072467
jmp 0x140072419
mov rcx, qword [0x140203b58]
test rcx, rcx
jne 0x14007258b
call fcn.140045f90
mov rcx, rax
mov qword [0x140203b58], rax
mov rdx, rbx
mov r8d, 1
call fcn.140046510
test al, al
je 0x140072467
mov r14, qword [0x140203b58]
test r14, r14
jne 0x1400725bc
call fcn.140045f90
mov r14, rax
mov qword [0x140203b58], rax
mov ecx, 8
call fcn.14012c3a0
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.1400474e0
mov ebp, eax
mov rcx, qword [r15]
test rcx, rcx
je 0x140072615
mov rax, qword [rsp + 0x50]
cmp rax, rcx
je 0x14007260b
add rax, 0xfffffffffffffffc
jne 0x1400725fe
jmp 0x140072623
mov qword [rsp + 0x50], rcx
call fcn.14012c3dc
test bpl, bpl
jne 0x14007242e
jmp 0x140072467
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.140168c70
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.140168c70
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.140168c70
int3
int3
int3