Function at 0x180012050
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 [0x180267080]
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.180009740
nop
lea edx, [r12 + 0x10]
lea rcx, [rbp - 0x68]
call fcn.180016230
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.18017df2c
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.180014560
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 0x18001219d
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.1801801b0
lea rax, [r14 + rdi]
mov word [rbx + rax*2], r12w
jmp 0x1800121af
mov qword [rsp + 0x20], rdi
mov rdx, rdi
lea rcx, [rsp + 0x58]
call fcn.180009e70
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov rax, rdx
sub rax, rcx
cmp rax, 3
jb 0x1800121fa
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, [0x1801e0ce8]
call fcn.1801801b0
mov word [rbx + rdi*2], r12w
jmp 0x180012219
mov qword [rsp + 0x20], 3
lea r9, [0x1801e0ce8]
mov edx, 3
lea rcx, [rsp + 0x58]
call fcn.180009e70
lea r8, [rbp - 0x40]
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x40]
call fcn.18001b290
movzx edi, al
and r15d, 0xfffffffe
mov dword [rsp + 0x30], r15d
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x18001227a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180012275
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012cb2
call fcn.18017e41c
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], 7
mov word [rsp + 0x58], r12w
mov rbx, qword [rsp + 0x40]
test dil, dil
je 0x1800129b5
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 0x1800122f2
test r14, r14
je 0x1800122f2
lea rax, [rbp - 0x18]
cmp r12, 8
cmovae rax, r13
cmp word [rax], 0x2e
jne 0x1800122f2
cmp r14, 1
je 0x1800125fe
lea rax, [rbp - 0x18]
cmp r12, 8
cmovae rax, r13
cmp word [rax + 2], 0x2e
jne 0x1800122f2
cmp r14, 2
je 0x1800125fe
test cl, cl
je 0x180012476
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.180014560
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 0x180012397
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.1801801b0
mov rax, qword [rsp + 0x38]
add rax, rsi
xor ecx, ecx
mov word [rdi + rax*2], cx
jmp 0x1800123a9
mov qword [rsp + 0x20], rsi
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.180009e70
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 0x1800123fc
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.1801801b0
xor r14d, r14d
mov word [rdi + rsi*2], r14w
jmp 0x180012411
mov qword [rsp + 0x20], r14
mov rdx, r14
lea rcx, [rsp + 0x58]
call fcn.180009e70
xor r14d, r14d
lea rcx, [rsp + 0x58]
call fcn.180012050
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 0x1800125ea
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800125e5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012ca6
jmp 0x1800125e5
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.180014560
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 0x180012513
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.1801801b0
mov rax, qword [rsp + 0x38]
add rax, rsi
xor ecx, ecx
mov word [rdi + rax*2], cx
jmp 0x180012525
mov qword [rsp + 0x20], rsi
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.180009e70
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 0x180012578
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.1801801b0
xor r14d, r14d
mov word [rdi + rsi*2], r14w
jmp 0x18001258d
mov qword [rsp + 0x20], r14
mov rdx, r14
lea rcx, [rsp + 0x58]
call fcn.180009e70
xor r14d, r14d
lea rcx, [rsp + 0x58]
call fcn.18001c240
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 0x1800125ea
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800125e5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012cb8
call fcn.18017e41c
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 0x1800129b5
xor edx, edx
mov r8d, 0x250
lea rcx, [rbp + 0x10]
call fcn.180180610
lea rdx, [rbp + 0x10]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x1800129b5
lea r8, [rbp - 0x40]
lea rdx, [rbp + 0x10]
call fcn.18001b000
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 0x180012693
test r14, r14
je 0x180012693
lea rax, [rbp - 0x18]
cmp r12, 8
cmovae rax, r13
cmp word [rax], 0x2e
jne 0x180012693
cmp r14, 1
je 0x1800125fe
lea rax, [rbp - 0x18]
cmp r12, 8
cmovae rax, r13
cmp word [rax + 2], 0x2e
jne 0x180012693
cmp r14, 2
je 0x1800125fe
test cl, cl
je 0x18001282d
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.180014560
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 0x180012738
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.1801801b0
mov rax, qword [rsp + 0x48]
add rax, rsi
xor ecx, ecx
mov word [rdi + rax*2], cx
jmp 0x18001274a
mov qword [rsp + 0x20], rsi
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.180009e70
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 0x18001279d
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.1801801b0
xor r12d, r12d
mov word [rdi + rsi*2], r12w
jmp 0x1800127b2
mov qword [rsp + 0x20], r14
mov rdx, r14
lea rcx, [rsp + 0x58]
call fcn.180009e70
xor r12d, r12d
lea rcx, [rsp + 0x58]
call fcn.180012050
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 0x180012814
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001280f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012cbe
call fcn.18017e41c
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], 7
mov word [rsp + 0x58], r12w
jmp 0x180012601
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.180014560
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 0x1800128c3
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.1801801b0
mov rax, qword [rsp + 0x48]
add rax, rsi
xor ecx, ecx
mov word [rdi + rax*2], cx
jmp 0x1800128d5
mov qword [rsp + 0x20], rsi
mov rdx, rsi
lea rcx, [rsp + 0x78]
call fcn.180009e70
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 0x180012925
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.1801801b0
xor r12d, r12d
mov word [rdi + rsi*2], r12w
jmp 0x18001293a
mov qword [rsp + 0x20], r14
mov rdx, r14
lea rcx, [rsp + 0x78]
call fcn.180009e70
xor r12d, r12d
lea rcx, [rsp + 0x78]
call fcn.18001c240
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 0x18001299e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180012999
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012cc4
call fcn.18017e41c
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
jmp 0x180012601
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1800129cf
call qword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
je 0x1800129cf
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 0x180012a8c
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.18001cd00
test al, al
je 0x180012b28
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 0x180012b28
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x180012a7a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180012a75
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012cca
call fcn.18017e41c
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
inc rsi
lea rcx, [rsp + 0x40]
call fcn.18001b220
nop
lea rcx, [rbp - 0x18]
call fcn.1800098a0
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x180012ae4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180012adf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012cd0
call fcn.18017e41c
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.18017df00
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 0x180012b69
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180012b64
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012cd6
call fcn.18017e41c
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
lea rcx, [rbp - 0x68]
call fcn.18001ba00
mov ebx, eax
cmp eax, 0xffffffff
je 0x180012a8f
xor edx, edx
lea rcx, [rbp - 0x68]
call fcn.18001b8e0
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 0x180012a8c
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.18001cd00
test al, al
je 0x180012c41
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 0x180012c41
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x180012a7a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180012a75
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012cac
jmp 0x180012a75
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x180012c7e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180012c79
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180012ca0
call fcn.18017e41c
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
mov edx, ebx
lea rcx, [rbp - 0x68]
call fcn.18001b8e0
jmp 0x180012a8f
call fcn.180182c3c
int3
call fcn.180182c3c
int3
call fcn.180182c3c
int3
call fcn.180182c3c
int3
call fcn.180182c3c
int3
call fcn.180182c3c
int3
call fcn.180182c3c
int3
call fcn.180182c3c
nop
call fcn.180182c3c
nop
call fcn.180182c3c
int3