Function at 0x18001c2c0
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x1a8]
sub rsp, 0x2a8
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
add edi, edi
lea edx, [rdi + 2]
movsxd rcx, edx
call fcn.1800251fc
xor esi, esi
mov rbx, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x28], esi
test rax, rax
je 0x18001c329
mov rdx, qword [rbp + 0x1d0]
movsxd r8, edi
mov rcx, rax
mov esi, edi
mov dword [rsp + 0x28], edi
mov word [r8 + rax], 0
call fcn.18002525c
mov eax, esi
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
cmp word [rbx + rcx*2 - 2], 0x5c
je 0x18001c352
lea rdx, [0x18002cd48]
lea rcx, [rsp + 0x28]
mov r8d, 2
call fcn.180005da0
lea rcx, [0x18002d248]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, [0x18002d248]
lea rcx, [rsp + 0x28]
lea r8d, [rax + rax]
call fcn.180005da0
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rsp + 0x20], rax
cmp rax, 0xffffffffffffffff
jne 0x18001c3b4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x30]
mov ebx, eax
test rcx, rcx
je 0x18001c3a6
call sub.KERNEL32.dll_LocalFree
mov eax, ebx
add rsp, 0x2a8
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdi, qword [rsp + 0x30]
mov rbx, rax
nop dword [rax]
cmp word [rsp + 0x7c], 0x2e
jne 0x18001c3e7
movzx eax, word [rsp + 0x7e]
test ax, ax
je 0x18001c6b1
cmp ax, 0x2e
jne 0x18001c3e7
cmp word [rbp - 0x80], 0
je 0x18001c6b1
mov rcx, qword [rbp + 0x1d0]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
add esi, esi
test rdi, rdi
je 0x18001c405
mov rcx, rdi
call sub.KERNEL32.dll_LocalFree
lea ecx, [rsi + 2]
movsxd rcx, ecx
call fcn.1800251fc
xor ebx, ebx
mov rdi, rax
test rax, rax
je 0x18001c435
mov rdx, qword [rbp + 0x1d0]
movsxd r8, esi
mov rcx, rax
mov ebx, esi
mov word [r8 + rax], 0
call fcn.18002525c
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
cmp word [rdi + rcx*2 - 2], 0x5c
jne 0x18001c4d6
cmp word [rsp + 0x7c], 0x5c
jne 0x18001c4de
lea rcx, [rsp + 0x7e]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [rbx + 2]
add eax, eax
movsxd rcx, ecx
mov dword [rbp + 0x1e0], eax
call fcn.1800251fc
mov dword [rbp + 0x1d8], 0
mov rsi, rax
test rax, rax
je 0x18001c496
movsxd rcx, ebx
mov dword [rbp + 0x1d8], ebx
mov word [rcx + rax], 0
movsxd r8, ebx
mov rdx, rdi
mov rcx, rax
call fcn.18002525c
add ebx, dword [rbp + 0x1e0]
test rdi, rdi
je 0x18001c4b7
mov rcx, rdi
call sub.KERNEL32.dll_LocalFree
lea eax, [rbx + 2]
movsxd rcx, eax
call fcn.1800251fc
mov rdi, rax
test rax, rax
je 0x18001c65e
movsxd rax, ebx
jmp 0x18001c62e
cmp word [rsp + 0x7c], 0x5c
jne 0x18001c4e8
lea rcx, [rsp + 0x7c]
jmp 0x18001c45c
lea eax, [rbx + 2]
movsxd rcx, eax
mov dword [rbp + 0x1e0], eax
call fcn.1800251fc
mov dword [rbp + 0x1d8], 0
mov rsi, rax
test rax, rax
je 0x18001c51a
movsxd rcx, ebx
mov dword [rbp + 0x1d8], ebx
mov word [rcx + rax], 0
movsxd r8, ebx
mov rdx, rdi
mov rcx, rax
call fcn.18002525c
test rdi, rdi
je 0x18001c535
mov rcx, rdi
call sub.KERNEL32.dll_LocalFree
lea eax, [rbx + 4]
movsxd rcx, eax
call fcn.1800251fc
xor edi, edi
mov rbx, rax
mov qword [rbp + 0x1e8], rax
test rax, rax
je 0x18001c685
movsxd rax, dword [rbp + 0x1e0]
mov rcx, qword [rbp + 0x1e8]
mov rdx, rsi
mov word [rax + rbx], 0
movsxd rbx, dword [rbp + 0x1d8]
mov edi, eax
mov r8, rbx
call fcn.18002525c
mov rax, qword [rbp + 0x1e8]
lea rdx, [0x18002cd48]
lea rcx, [rbx + rax]
mov r8d, 2
call fcn.18002525c
test rsi, rsi
je 0x18001c5a7
mov rcx, rsi
call sub.KERNEL32.dll_LocalFree
mov rbx, qword [rbp + 0x1e8]
lea rcx, [rsp + 0x7c]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [rdi + 2]
add eax, eax
movsxd rcx, ecx
mov dword [rbp + 0x1e0], eax
call fcn.1800251fc
mov dword [rbp + 0x1d8], 0
mov rsi, rax
test rax, rax
je 0x18001c5ed
movsxd rcx, edi
mov dword [rbp + 0x1d8], edi
mov word [rcx + rax], 0
movsxd r8, edi
mov rdx, rbx
mov rcx, rax
call fcn.18002525c
add edi, dword [rbp + 0x1e0]
mov dword [rbp + 0x1e8], edi
test rbx, rbx
je 0x18001c614
mov rcx, rbx
call sub.KERNEL32.dll_LocalFree
lea eax, [rdi + 2]
movsxd rcx, eax
call fcn.1800251fc
mov rdi, rax
test rax, rax
je 0x18001c65e
movsxd rax, dword [rbp + 0x1e8]
movsxd rbx, dword [rbp + 0x1d8]
mov rdx, rsi
mov rcx, rdi
mov r8, rbx
mov word [rax + rdi], 0
call fcn.18002525c
movsxd r8, dword [rbp + 0x1e0]
lea rdx, [rsp + 0x7c]
lea rcx, [rbx + rdi]
call fcn.18002525c
test rsi, rsi
je 0x18001c66b
mov rcx, rsi
call sub.KERNEL32.dll_LocalFree
test byte [rsp + 0x50], 0x10
mov rcx, rdi
je 0x18001c69b
call fcn.18001c2c0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x18001c6ac
test rsi, rsi
je 0x18001c5ae
mov rcx, rsi
call sub.KERNEL32.dll_LocalFree
jmp 0x18001c5ae
xor edx, edx
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rbx, qword [rsp + 0x20]
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x18001c3c0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rbp + 0x1d0]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x18001c704
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test rdi, rdi
je 0x18001c6f6
mov rcx, rdi
call sub.KERNEL32.dll_LocalFree
mov eax, ebx
add rsp, 0x2a8
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rdi, rdi
je 0x18001c711
mov rcx, rdi
call sub.KERNEL32.dll_LocalFree
xor eax, eax
add rsp, 0x2a8
pop rdi
pop rsi
pop rbx
pop rbp
ret