Function at 0x18000f3e0
Capabilities:
Delete directory

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x298]
sub rsp, 0x370
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x18020d140]
xor rax, rsp
mov qword [rbp + 0x260], rax
xor r12d, r12d
mov dword [rsp + 0x30], r12d
mov esi, r12d
mov qword [rsp + 0x38], r12
mov rdx, rcx
lea rcx, [rbp - 0x68]
call fcn.1800051e0
nop
lea edx, [r12 + 0x10]
lea rcx, [rbp - 0x68]
call fcn.180012960
mov qword [rbp - 0x40], r12
mov qword [rbp - 0x38], r12
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], r12
mov qword [rbp - 8], r12
mov qword [rbp], r12
mov qword [rbp - 8], r12
mov qword [rbp], 7
mov word [rbp - 0x18], r12w
mov qword [rsp + 0x40], r12
lea ecx, [r12 + 8]
call fcn.180147c14
mov qword [rsp + 0x48], rax
mov qword [rax], 0xffffffffffffffff
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], 7
mov word [rsp + 0x58], r12w
mov r15d, 1
mov dword [rsp + 0x30], r15d
mov rdx, qword [rbp - 0x58]
add rdx, 3
lea rcx, [rsp + 0x58]
call fcn.180011560
lea r9, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae r9, qword [rbp - 0x68]
mov rdi, qword [rbp - 0x58]
mov r14, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
sub rax, r14
cmp rdi, rax
ja 0x18000f52d
lea rax, [r14 + rdi]
mov qword [rsp + 0x68], rax
lea rbx, [rsp + 0x58]
cmp rcx, 8
cmovae rbx, qword [rsp + 0x58]
lea r8, [rdi + rdi]
lea rcx, [rbx + r14*2]
mov rdx, r9
call fcn.18014ba10
lea rax, [r14 + rdi]
mov word [rbx + rax*2], r12w
jmp 0x18000f53f
mov qword [rsp + 0x20], rdi
mov rdx, rdi
lea rcx, [rsp + 0x58]
call fcn.180008fd0
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov rax, rdx
sub rax, rcx
cmp rax, 3
jb 0x18000f58a
lea rdi, [rcx + 3]
mov qword [rsp + 0x68], rdi
lea rbx, [rsp + 0x58]
cmp rdx, 8
cmovae rbx, qword [rsp + 0x58]
lea rcx, [rbx + rcx*2]
mov r8d, 6
lea rdx, [0x1801b3270]
call fcn.18014ba10
mov word [rbx + rdi*2], r12w
jmp 0x18000f5a9
mov qword [rsp + 0x20], 3
lea r9, [0x1801b3270]
mov edx, 3
lea rcx, [rsp + 0x58]
call fcn.180008fd0
lea r8, [rbp - 0x40]
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x40]
call fcn.1800189b0
movzx edi, al
and r15d, 0xfffffffe
mov dword [rsp + 0x30], r15d
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x18000f60a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000f605
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180010042
call fcn.180148104
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], 7
mov word [rsp + 0x58], r12w
mov rbx, qword [rsp + 0x40]
test dil, dil
je 0x18000fd45
movzx ecx, byte [rbp - 0x20]
shr cl, 4
mov r12, qword [rbp]
mov r14, qword [rbp - 8]
mov r13, qword [rbp - 0x18]
and cl, 1
je 0x18000f682
test r14, r14
je 0x18000f682
lea rax, [rbp - 0x18]
cmp r12, 8
cmovae rax, r13
cmp word [rax], 0x2e
jne 0x18000f682
cmp r14, 1
je 0x18000f98e
lea rax, [rbp - 0x18]
cmp r12, 8
cmovae rax, r13
cmp word [rax + 2], 0x2e
jne 0x18000f682
cmp r14, 2
je 0x18000f98e
test cl, cl
je 0x18000f806
xor eax, eax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], 7
mov word [rsp + 0x58], ax
or r15d, 2
mov dword [rsp + 0x30], r15d
mov rdx, qword [rbp - 0x58]
add rdx, r14
lea rcx, [rsp + 0x58]
call fcn.180011560
lea r9, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae r9, qword [rbp - 0x68]
mov rsi, qword [rbp - 0x58]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x38], rcx
mov rdx, qword [rsp + 0x70]
mov rax, rdx
sub rax, rcx
cmp rsi, rax
ja 0x18000f727
lea rax, [rcx + rsi]
mov qword [rsp + 0x68], rax
lea rdi, [rsp + 0x58]
cmp rdx, 8
cmovae rdi, qword [rsp + 0x58]
lea r8, [rsi + rsi]
lea rcx, [rdi + rcx*2]
mov rdx, r9
call fcn.18014ba10
mov rax, qword [rsp + 0x38]
add rax, rsi
xor ecx, ecx
mov word [rdi + rax*2], cx
jmp 0x18000f739
mov qword [rsp + 0x20], rsi
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.180008fd0
lea r9, [rbp - 0x18]
cmp r12, 8
cmovae r9, r13
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov rax, rdx
sub rax, rcx
cmp r14, rax
ja 0x18000f78c
lea rsi, [rcx + r14]
mov qword [rsp + 0x68], rsi
lea rdi, [rsp + 0x58]
cmp rdx, 8
cmovae rdi, qword [rsp + 0x58]
lea r8, [r14 + r14]
lea rcx, [rdi + rcx*2]
mov rdx, r9
call fcn.18014ba10
xor r14d, r14d
mov word [rdi + rsi*2], r14w
jmp 0x18000f7a1
mov qword [rsp + 0x20], r14
mov rdx, r14
lea rcx, [rsp + 0x58]
call fcn.180008fd0
xor r14d, r14d
lea rcx, [rsp + 0x58]
call fcn.18000f3e0
mov rsi, rax
mov qword [rsp + 0x38], rax
and r15d, 0xfffffffd
mov dword [rsp + 0x30], r15d
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x18000f97a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000f975
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180010036
jmp 0x18000f975
xor eax, eax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], 7
mov word [rsp + 0x58], ax
or r15d, 4
mov dword [rsp + 0x30], r15d
mov rdx, qword [rbp - 0x58]
add rdx, r14
lea rcx, [rsp + 0x58]
call fcn.180011560
lea r9, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae r9, qword [rbp - 0x68]
mov rsi, qword [rbp - 0x58]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x38], rcx
mov rdx, qword [rsp + 0x70]
mov rax, rdx
sub rax, rcx
cmp rsi, rax
ja 0x18000f8a3
lea rax, [rsi + rcx]
mov qword [rsp + 0x68], rax
lea rdi, [rsp + 0x58]
cmp rdx, 8
cmovae rdi, qword [rsp + 0x58]
lea r8, [rsi + rsi]
lea rcx, [rdi + rcx*2]
mov rdx, r9
call fcn.18014ba10
mov rax, qword [rsp + 0x38]
add rax, rsi
xor ecx, ecx
mov word [rdi + rax*2], cx
jmp 0x18000f8b5
mov qword [rsp + 0x20], rsi
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.180008fd0
lea r9, [rbp - 0x18]
cmp r12, 8
cmovae r9, r13
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov rax, rdx
sub rax, rcx
cmp r14, rax
ja 0x18000f908
lea rsi, [rcx + r14]
mov qword [rsp + 0x68], rsi
lea rdi, [rsp + 0x58]
cmp rdx, 8
cmovae rdi, qword [rsp + 0x58]
lea r8, [r14 + r14]
lea rcx, [rdi + rcx*2]
mov rdx, r9
call fcn.18014ba10
xor r14d, r14d
mov word [rdi + rsi*2], r14w
jmp 0x18000f91d
mov qword [rsp + 0x20], r14
mov rdx, r14
lea rcx, [rsp + 0x58]
call fcn.180008fd0
xor r14d, r14d
lea rcx, [rsp + 0x58]
call fcn.18001ef90
movzx esi, al
mov qword [rsp + 0x38], rsi
and r15d, 0xfffffffb
mov dword [rsp + 0x30], r15d
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x18000f97a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000f975
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180010048
call fcn.180148104
mov word [rsp + 0x58], r14w
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], r14
xor r12d, r12d
mov rdi, qword [rbx]
cmp rdi, 0xffffffffffffffff
je 0x18000fd45
xor edx, edx
mov r8d, 0x250
lea rcx, [rbp + 0x10]
call fcn.18014be70
lea rdx, [rbp + 0x10]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x18000fd45
lea r8, [rbp - 0x40]
lea rdx, [rbp + 0x10]
call fcn.180018720
movzx ecx, byte [rbp - 0x20]
shr cl, 4
mov r12, qword [rbp]
mov r14, qword [rbp - 8]
mov r13, qword [rbp - 0x18]
and cl, 1
je 0x18000fa23
test r14, r14
je 0x18000fa23
lea rax, [rbp - 0x18]
cmp r12, 8
cmovae rax, r13
cmp word [rax], 0x2e
jne 0x18000fa23
cmp r14, 1
je 0x18000f98e
lea rax, [rbp - 0x18]
cmp r12, 8
cmovae rax, r13
cmp word [rax + 2], 0x2e
jne 0x18000fa23
cmp r14, 2
je 0x18000f98e
test cl, cl
je 0x18000fbbd
xor eax, eax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], 7
mov word [rsp + 0x58], ax
or r15d, 8
mov dword [rsp + 0x30], r15d
mov rdx, qword [rbp - 0x58]
add rdx, r14
lea rcx, [rsp + 0x58]
call fcn.180011560
lea r9, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae r9, qword [rbp - 0x68]
mov rsi, qword [rbp - 0x58]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x48], rcx
mov rdx, qword [rsp + 0x70]
mov rax, rdx
sub rax, rcx
cmp rsi, rax
ja 0x18000fac8
lea rax, [rcx + rsi]
mov qword [rsp + 0x68], rax
lea rdi, [rsp + 0x58]
cmp rdx, 8
cmovae rdi, qword [rsp + 0x58]
lea r8, [rsi + rsi]
lea rcx, [rdi + rcx*2]
mov rdx, r9
call fcn.18014ba10
mov rax, qword [rsp + 0x48]
add rax, rsi
xor ecx, ecx
mov word [rdi + rax*2], cx
jmp 0x18000fada
mov qword [rsp + 0x20], rsi
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.180008fd0
lea r9, [rbp - 0x18]
cmp r12, 8
cmovae r9, r13
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov rax, rdx
sub rax, rcx
cmp r14, rax
ja 0x18000fb2d
lea rsi, [rcx + r14]
mov qword [rsp + 0x68], rsi
lea rdi, [rsp + 0x58]
cmp rdx, 8
cmovae rdi, qword [rsp + 0x58]
lea r8, [r14 + r14]
lea rcx, [rdi + rcx*2]
mov rdx, r9
call fcn.18014ba10
xor r12d, r12d
mov word [rdi + rsi*2], r12w
jmp 0x18000fb42
mov qword [rsp + 0x20], r14
mov rdx, r14
lea rcx, [rsp + 0x58]
call fcn.180008fd0
xor r12d, r12d
lea rcx, [rsp + 0x58]
call fcn.18000f3e0
mov rsi, qword [rsp + 0x38]
add rsi, rax
mov qword [rsp + 0x38], rsi
and r15d, 0xfffffff7
mov dword [rsp + 0x30], r15d
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x18000fba4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000fb9f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001004e
call fcn.180148104
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], 7
mov word [rsp + 0x58], r12w
jmp 0x18000f991
xor eax, eax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], ax
or r15d, 0x10
mov dword [rsp + 0x30], r15d
mov rdx, qword [rbp - 0x58]
add rdx, r14
lea rcx, [rsp + 0x78]
call fcn.180011560
lea r9, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae r9, qword [rbp - 0x68]
mov rsi, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x78]
mov qword [rsp + 0x48], rcx
mov rdx, qword [rbp - 0x70]
mov rax, rdx
sub rax, rcx
cmp rsi, rax
ja 0x18000fc53
lea rax, [rcx + rsi]
mov qword [rbp - 0x78], rax
lea rdi, [rsp + 0x78]
cmp rdx, 8
cmovae rdi, qword [rsp + 0x78]
lea r8, [rsi + rsi]
lea rcx, [rdi + rcx*2]
mov rdx, r9
call fcn.18014ba10
mov rax, qword [rsp + 0x48]
add rax, rsi
xor ecx, ecx
mov word [rdi + rax*2], cx
jmp 0x18000fc65
mov qword [rsp + 0x20], rsi
mov rdx, rsi
lea rcx, [rsp + 0x78]
call fcn.180008fd0
lea r9, [rbp - 0x18]
cmp r12, 8
cmovae r9, r13
mov rcx, qword [rbp - 0x78]
mov rdx, qword [rbp - 0x70]
mov rax, rdx
sub rax, rcx
cmp r14, rax
ja 0x18000fcb5
lea rsi, [rcx + r14]
mov qword [rbp - 0x78], rsi
lea rdi, [rsp + 0x78]
cmp rdx, 8
cmovae rdi, qword [rsp + 0x78]
lea r8, [r14 + r14]
lea rcx, [rdi + rcx*2]
mov rdx, r9
call fcn.18014ba10
xor r12d, r12d
mov word [rdi + rsi*2], r12w
jmp 0x18000fcca
mov qword [rsp + 0x20], r14
mov rdx, r14
lea rcx, [rsp + 0x78]
call fcn.180008fd0
xor r12d, r12d
lea rcx, [rsp + 0x78]
call fcn.18001ef90
movzx eax, al
mov rsi, qword [rsp + 0x38]
add rsi, rax
mov qword [rsp + 0x38], rsi
and r15d, 0xffffffef
mov dword [rsp + 0x30], r15d
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x18000fd2e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000fd29
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180010054
call fcn.180148104
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
jmp 0x18000f991
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x18000fd5f
call qword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
je 0x18000fd5f
mov qword [rbx], 0xffffffffffffffff
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x18000fe1c
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x68]
call fcn.18001fa50
test al, al
je 0x18000feb8
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x18000feb8
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x18000fe0a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000fe05
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001005a
call fcn.180148104
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
inc rsi
lea rcx, [rsp + 0x40]
call fcn.180018940
nop
lea rcx, [rbp - 0x18]
call fcn.180005300
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x18000fe74
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000fe6f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180010060
call fcn.180148104
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], r12w
mov rax, rsi
mov rcx, qword [rbp + 0x260]
xor rcx, rsp
call fcn.180147bf0
lea r11, [rsp + 0x370]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x18000fef9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000fef4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180010066
call fcn.180148104
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
lea rcx, [rbp - 0x68]
call fcn.18001e750
mov ebx, eax
cmp eax, 0xffffffff
je 0x18000fe1f
xor edx, edx
lea rcx, [rbp - 0x68]
call fcn.18001e630
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x18000fe1c
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x68]
call fcn.18001fa50
test al, al
je 0x18000ffd1
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x18000ffd1
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x18000fe0a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000fe05
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001003c
jmp 0x18000fe05
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x18001000e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180010009
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180010030
call fcn.180148104
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
mov edx, ebx
lea rcx, [rbp - 0x68]
call fcn.18001e630
jmp 0x18000fe1f
call fcn.18014ebe4
int3
call fcn.18014ebe4
int3
call fcn.18014ebe4
int3
call fcn.18014ebe4
int3
call fcn.18014ebe4
int3
call fcn.18014ebe4
int3
call fcn.18014ebe4
int3
call fcn.18014ebe4
nop
call fcn.18014ebe4
nop
call fcn.18014ebe4
int3