Function at 0x140041240
Capabilities:
Delete directory

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x508]
sub rsp, 0x608
mov rdi, rdx
mov r14, rcx
xor r12d, r12d
mov esi, r12d
mov dword [rbp + 0x568], r12d
call fcn.140048c60
mov rdx, qword [r14]
cmp dword [rdx - 0x10], r12d
jne 0x1400412c5
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400412be
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400412b4
mov r13, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x1400412be
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xor al, al
jmp 0x140041a39
mov r15b, 1
mov byte [rbp + 0x560], r15b
lea rax, [rbp + 8]
mov qword [rsp + 0x60], rax
mov rdx, r14
lea rcx, [rbp + 8]
call fcn.1400080e0
nop
lea rax, vtable.JRPropertyMap.0
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], r12
mov byte [rbp + 0x20], r15b
xor edx, edx
lea rcx, [rbp + 8]
call fcn.140045f20
nop
mov byte [rbp], 0
xor edx, edx
mov r8d, 0x250
lea rcx, [rbp + 0x28]
call fcn.1400e24f0
mov r13, 0xffffffffffffffff
mov qword [rbp + 0x278], r13
lea rdx, [rbp - 0x60]
lea rcx, [rbp + 8]
call fcn.140046c90
mov rdx, rax
lea rcx, [rbp]
call fcn.1400514e0
nop
xor edx, edx
lea rcx, [rbp + 0x288]
call fcn.140045dc0
nop
mov byte [rbp + 0x280], 0
lea rcx, [rbp + 0x288]
call fcn.1400336e0
lea rcx, [rbp + 0x290]
mov rax, qword [rbp + 0x290]
call qword [rax + 0x70]
xor edx, edx
mov r8d, 0x250
lea rcx, [rbp + 0x2a8]
call fcn.1400e24f0
nop
lea rdx, [rbp + 0x280]
lea rcx, [rbp]
call fcn.140051660
test al, al
je 0x1400417b7
mov rbx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x18]
mov qword [rsp + 0x68], rax
nop
test byte [rbp + 0x2a8], 0x10
je 0x1400414b2
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x280]
call fcn.140051380
nop
lea rcx, [rsp + 0x40]
call fcn.140048c60
call fcn.140008400
mov r11, rax
mov rcx, qword [rsp + 0x40]
cmp dword [rcx - 0x10], 0
jg 0x1400413f7
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
jmp 0x14004145e
mov eax, dword [rcx - 8]
cmp eax, 0xffffffff
jne 0x140041425
mov rdx, qword [rsp + 0x40]
mov rax, qword [r11]
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r9d, r13d
mov r8d, dword [rdx - 0x10]
mov rcx, r11
call qword [rax + 0x28]
jmp 0x14004145e
mov rax, qword [rsp + 0x40]
cmp r11, qword [rax - 0x18]
je 0x140041455
mov r10, qword [r11]
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r9d, r13d
mov r8d, dword [rax - 0x10]
mov rdx, rax
mov rcx, r11
call qword [r10 + 0x28]
jmp 0x14004145e
lock inc dword [rax - 8]
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x48], rax
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x48]
call fcn.140041240
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400414a5
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14004149b
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400414a5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
movzx r15d, byte [rbp + 0x560]
jmp 0x140041791
lea rdx, [rbp + 0x288]
lea rcx, [rsp + 0x50]
call fcn.1400080e0
or esi, 0xe0
mov dword [rbp + 0x568], esi
test byte [rbp + 0x2a8], 0x10
je 0x1400414e9
lea rdx, [0x140134d4c]
lea rcx, [rsp + 0x50]
call fcn.140034e60
test rdi, rdi
je 0x1400415d7
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x80]
call fcn.1400080e0
nop
lea rax, vtable.JRPropertyMap.0
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], r12
mov byte [rbp - 0x68], 1
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.140045f20
nop
or esi, 1
mov dword [rbp + 0x568], esi
mov r8b, 1
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x80]
call fcn.140048730
mov qword [rsp + 0x78], rax
or esi, 2
mov dword [rbp + 0x568], esi
mov r15d, r12d
mov r14, r12
movsxd rax, dword [rdi + 8]
test eax, eax
jle 0x1400415d7
test rax, rax
jle 0x1400415cf
mov rbx, rax
mov r13, qword [rsp + 0x78]
mov rsi, qword [rbp + 0x558]
nop dword [rax]
mov rax, qword [rsi + 0x18]
mov rcx, qword [r13]
mov r12, qword [rax + r14*8]
cmp r12, rcx
je 0x1400415b1
lea rdi, [0x140129d58]
test rcx, rcx
cmovne rdi, rcx
call fcn.140008400
mov rcx, rax
mov r8, rdi
mov rdx, r12
call fcn.140008570
test eax, eax
je 0x1400415b1
inc r15d
inc r14
cmp r14, rbx
jl 0x140041570
cmp r15d, ebx
mov rbx, qword [rbp - 0x50]
mov esi, dword [rbp + 0x568]
mov r13, 0xffffffffffffffff
jge 0x1400415d4
xor r12d, r12d
test r15d, r15d
js 0x1400415d7
mov dil, 1
jmp 0x1400415da
xor r12d, r12d
xor dil, dil
test sil, 2
je 0x140041620
and esi, 0xfffffffd
mov dword [rbp + 0x568], esi
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14004161a
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140041610
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14004161a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov esi, dword [rbp + 0x568]
test sil, 1
je 0x140041688
and esi, 0xfffffffe
mov dword [rbp + 0x568], esi
lea rax, vtable.JRPropertyMap.0
mov qword [rbp - 0x78], rax
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x140041651
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbp - 0x70], r12
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140041682
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140041678
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140041682
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov esi, dword [rbp + 0x568]
test dil, dil
je 0x14004169c
xor r15b, r15b
mov byte [rbp + 0x560], r15b
jmp 0x14004174f
test sil, 8
je 0x1400416de
and esi, 0xfffffff7
mov dword [rbp + 0x568], esi
lea rdx, [rbx - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400416d8
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400416ce
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400416d8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov esi, dword [rbp + 0x568]
test sil, 4
je 0x14004173d
and esi, 0xfffffffb
mov dword [rbp + 0x568], esi
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140041706
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rsp + 0x68], r12
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140041737
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14004172d
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140041737
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov esi, dword [rbp + 0x568]
lea rcx, [rsp + 0x50]
call fcn.140042e00
movzx r15d, byte [rbp + 0x560]
and esi, 0xffffffdf
mov dword [rbp + 0x568], esi
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14004178a
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140041780
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14004178a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdi, qword [rbp + 0x558]
lea rdx, [rbp + 0x280]
lea rcx, [rbp]
call fcn.140051660
test al, al
je 0x1400417b0
mov esi, dword [rbp + 0x568]
jmp 0x1400413b0
mov r14, qword [rbp + 0x550]
lea rcx, [rbp + 0x288]
call fcn.140045eb0
nop
mov rcx, qword [rbp + 0x278]
cmp rcx, 0xffffffffffffffff
je 0x1400417d7
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rbp + 0x278], r13
mov byte [rbp], 0
lea rcx, [rbp + 8]
call fcn.140045eb0
test r15b, r15b
je 0x140041a08
mov rax, qword [r14]
mov r8d, dword [rax - 0x10]
dec r8d
lea rdx, [rbp - 0x40]
mov rcx, r14
call fcn.1400351c0
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov ebx, eax
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
mov ecx, dword [rdx + 0x10]
cmp ecx, 0x7ffffc17
je 0x140041847
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14004183d
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140041847
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rdi, [0x1401346f0]
test ebx, ebx
jne 0x1400418c0
lea r8d, [rbx + 4]
lea rdx, [rbp - 0x38]
mov rcx, r14
call fcn.1400351c0
mov r9d, dword [rbp + 0x568]
or r9d, 0x10
mov dword [rbp + 0x568], r9d
mov r8, qword [rax]
test r8, r8
je 0x1400418bc
movzx eax, word [r8]
cmp ax, 0x5c
jne 0x1400418bc
mov rdx, r12
mov rcx, r12
nop dword [rax]
cmp ax, word [rcx + rdi]
jne 0x1400418aa
inc r12d
inc rdx
lea rcx, [rdx + rdx]
movzx eax, word [r8 + rcx]
test ax, ax
jne 0x140041890
movsxd rax, r12d
lea rcx, [rax + rax]
movzx eax, word [rcx + rdi]
cmp word [rcx + r8], ax
je 0x1400418c7
mov bl, 1
jmp 0x1400418c9
mov r9d, dword [rbp + 0x568]
xor bl, bl
test r9b, 0x10
je 0x140041900
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140041900
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400418f6
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140041900
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
test bl, bl
je 0x140041a08
call fcn.140008400
mov r10, qword [rax]
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r9d, r13d
mov r8d, r13d
mov rdx, rdi
mov rcx, rax
call qword [r10 + 0x28]
mov qword [rsp + 0x70], rax
mov r8, r14
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x30]
call fcn.14003aba0
nop
mov rdx, rax
mov rcx, r14
call fcn.1400333a0
nop
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140041983
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140041979
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140041983
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400419b5
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400419ab
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400419b5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rax, qword [r14]
mov r8d, dword [rax - 0x10]
dec r8d
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.1400351c0
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140041a08
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400419fe
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140041a08
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r14]
sub rdx, 0x18
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140041a37
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x140041a2d
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x140041a37
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov al, 1
add rsp, 0x608
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret