Function at 0x140131d60
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 [0x14051d038]
xor rax, rsp
mov qword [rsp + 0x60], rax
cmp byte [rcx + 9], 0
je 0x140131de7
mov r14, rcx
mov r15, qword [rcx + 0x30]
test r15, r15
je 0x1401321e5
mov eax, 1
lock xadd dword [r15], eax
test eax, eax
jle 0x1401321e8
cmp eax, 0x7fffffff
je 0x1401321eb
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 [case.0x14012d181.0]
mov ebp, eax
lock dec dword [r15]
jne 0x140131de2
mov rcx, r15
call fcn.14015c4c0
test bpl, bpl
jne 0x140131e50
xor ebp, ebp
cmp byte [rdi + 0x18], 0
je 0x140131df7
mov rcx, rdi
call fcn.14026e190
cmp byte [rsi + 0x18], 0
je 0x140131e05
mov rcx, rsi
call fcn.14026e190
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1402ddd70
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.14026dd80
cmp byte [rsi + 0x18], 0
je 0x14013218d
mov r8, qword [rsp + 0x28]
mov rcx, rbx
mov rdx, rsi
call fcn.1401321f0
mov ebp, eax
jmp 0x140131de9
cmp byte [rdi + 0x18], 0
je 0x140131e21
cmp byte [rsi + 0x18], 0
je 0x140131fb8
lea rdx, [r14 + 0x28]
lea rcx, [rsp + 0x30]
call fcn.14026dd80
cmp byte [r14 + 9], 0
je 0x1401321b9
cmp byte [rsi + 0x18], 0
je 0x14013218d
cmp byte [rdi + 0x18], 0
je 0x14013218d
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.14015e020
mov rcx, rbx
mov rdx, r14
call fcn.14026e210
mov rcx, r14
call fcn.14026e190
mov rcx, rbx
call fcn.1401498e0
test bpl, bpl
je 0x140131f55
test al, al
je 0x140131f55
mov word [rsp + 0x3e], 0xaaaa
mov r14, qword [0x14053b8f8]
test r14, r14
jne 0x140131ef8
call fcn.140088f90
mov r14, rax
mov qword [0x14053b8f8], rax
mov ecx, 8
call fcn.1402dd130
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.14008a060
mov rcx, qword [r15]
test rcx, rcx
je 0x140132038
mov rax, qword [rsp + 0x50]
cmp rax, rcx
je 0x14013202e
add rax, 0xfffffffffffffffc
jne 0x140131f41
jmp 0x140132149
test al, al
jne 0x140131f65
mov rcx, rbx
call fcn.14014d580
test al, al
je 0x140131fa7
test bpl, bpl
jne 0x1401320b0
lea r14, [rsp + 0x48]
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.14026dd80
mov r8, qword [r14]
mov rcx, rbx
mov rdx, rsi
call fcn.1401321f0
mov bpl, 1
test al, al
jne 0x140131fa9
cmp byte [rbx + 0x17], 0
jns 0x140131f9e
mov rbx, qword [rbx]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor ebp, ebp
lea rcx, [rsp + 0x40]
call fcn.14026de10
jmp 0x140131de9
lea r14, [rsp + 0x48]
mov rcx, rbx
mov rdx, r14
mov r8, rdi
call fcn.14015e020
mov rcx, rbx
mov rdx, r14
call fcn.14026e210
mov rcx, r14
call fcn.14026e190
mov rcx, rbx
call fcn.1401498e0
test al, al
jne 0x140131ffa
mov rcx, rbx
call fcn.14014d580
test al, al
je 0x140131de7
mov rcx, qword [0x14053b8f8]
test rcx, rcx
jne 0x140132015
call fcn.140088f90
mov rcx, rax
mov qword [0x14053b8f8], rax
mov rdx, rbx
mov r8d, 1
mov r9d, 0x12019f
call fcn.140089280
jmp 0x140131e4c
mov qword [rsp + 0x50], rcx
call fcn.1402dd16c
cmp byte [rsp + 0x3f], 0
je 0x140131fa7
cmp byte [rsp + 0x3e], 0
je 0x14013209b
mov word [rsp + 0x48], 0xaaaa
mov rcx, qword [0x14053b8f8]
test rcx, rcx
jne 0x14013206c
call fcn.140088f90
mov rcx, rax
mov qword [0x14053b8f8], rax
lea r14, [rsp + 0x48]
mov rdx, r14
mov r8, rbx
mov r9d, 1
call fcn.14008ab50
cmp byte [r14 + 1], 0
je 0x140131fa7
cmp byte [rsp + 0x48], 0
jne 0x140131f6e
mov bpl, 1
mov rcx, rbx
call fcn.140149530
test al, al
je 0x140131fa7
jmp 0x140131f59
mov rcx, qword [0x14053b8f8]
test rcx, rcx
jne 0x1401320cb
call fcn.140088f90
mov rcx, rax
mov qword [0x14053b8f8], rax
mov rdx, rbx
mov r8d, 1
call fcn.140089510
test al, al
je 0x140131fa7
mov r14, qword [0x14053b8f8]
test r14, r14
jne 0x1401320fc
call fcn.140088f90
mov r14, rax
mov qword [0x14053b8f8], rax
mov ecx, 8
call fcn.1402dd130
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.14008a4c0
mov ebp, eax
mov rcx, qword [r15]
test rcx, rcx
je 0x14013217f
mov rax, qword [rsp + 0x50]
cmp rax, rcx
je 0x140132175
add rax, 0xfffffffffffffffc
jne 0x14013213e
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.14032ac00
mov qword [rsp + 0x50], rcx
call fcn.1402dd16c
test bpl, bpl
jne 0x140131f6e
jmp 0x140131fa7
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, 0x406
call fcn.14032ac00
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, 0x3fd
call fcn.14032ac00
int3
int3
int3