Function at 0x180014510
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 qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
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 0x18001457a
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.18001ca04
mov eax, esi
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
cmp word [rbx + rcx*2 - 2], 0x5c
je 0x1800145a3
lea rdx, [0x180023a00]
lea rcx, [rsp + 0x28]
mov r8d, 2
call fcn.1800046d0
lea rcx, [0x180023d18]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, [0x180023d18]
lea rcx, [rsp + 0x28]
lea r8d, [rax + rax]
call fcn.1800046d0
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 0x180014606
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x30]
mov ebx, eax
test rcx, rcx
je 0x1800145f8
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
mov eax, ebx
add rsp, 0x2a8
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdi, qword [rsp + 0x30]
mov rbx, rax
nop
cmp word [rsp + 0x7c], 0x2e
jne 0x180014637
movzx eax, word [rsp + 0x7e]
test ax, ax
je 0x18001490f
cmp ax, 0x2e
jne 0x180014637
cmp word [rbp - 0x80], 0
je 0x18001490f
mov rcx, qword [rbp + 0x1d0]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
add esi, esi
test rdi, rdi
je 0x180014656
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
lea ecx, [rsi + 2]
movsxd rcx, ecx
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
xor ebx, ebx
mov rdi, rax
test rax, rax
je 0x180014687
mov rdx, qword [rbp + 0x1d0]
movsxd r8, esi
mov rcx, rax
mov ebx, esi
mov word [r8 + rax], 0
call fcn.18001ca04
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
cmp word [rdi + rcx*2 - 2], 0x5c
jne 0x18001472b
cmp word [rsp + 0x7c], 0x5c
jne 0x180014733
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 qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x1d8], 0
mov rsi, rax
test rax, rax
je 0x1800146e9
movsxd rcx, ebx
mov dword [rbp + 0x1d8], ebx
mov word [rcx + rax], 0
movsxd r8, ebx
mov rdx, rdi
mov rcx, rax
call fcn.18001ca04
add ebx, dword [rbp + 0x1e0]
test rdi, rdi
je 0x18001470b
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
lea eax, [rbx + 2]
movsxd rcx, eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov rdi, rax
test rax, rax
je 0x1800148ba
movsxd rax, ebx
jmp 0x18001488a
cmp word [rsp + 0x7c], 0x5c
jne 0x18001473d
lea rcx, [rsp + 0x7c]
jmp 0x1800146ae
lea eax, [rbx + 2]
movsxd rcx, eax
mov dword [rbp + 0x1e0], eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x1d8], 0
mov rsi, rax
test rax, rax
je 0x180014770
movsxd rcx, ebx
mov dword [rbp + 0x1d8], ebx
mov word [rcx + rax], 0
movsxd r8, ebx
mov rdx, rdi
mov rcx, rax
call fcn.18001ca04
test rdi, rdi
je 0x18001478c
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
lea eax, [rbx + 4]
movsxd rcx, eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
xor edi, edi
mov rbx, rax
mov qword [rbp + 0x1e8], rax
test rax, rax
je 0x1800148e2
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.18001ca04
mov rax, qword [rbp + 0x1e8]
lea rdx, [0x180023a00]
lea rcx, [rbx + rax]
mov r8d, 2
call fcn.18001ca04
test rsi, rsi
je 0x180014800
mov rcx, rsi
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
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 qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x1d8], 0
mov rsi, rax
test rax, rax
je 0x180014847
movsxd rcx, edi
mov dword [rbp + 0x1d8], edi
mov word [rcx + rax], 0
movsxd r8, edi
mov rdx, rbx
mov rcx, rax
call fcn.18001ca04
add edi, dword [rbp + 0x1e0]
mov dword [rbp + 0x1e8], edi
test rbx, rbx
je 0x18001486f
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
lea eax, [rdi + 2]
movsxd rcx, eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov rdi, rax
test rax, rax
je 0x1800148ba
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.18001ca04
movsxd r8, dword [rbp + 0x1e0]
lea rdx, [rsp + 0x7c]
lea rcx, [rbx + rdi]
call fcn.18001ca04
test rsi, rsi
je 0x1800148c8
mov rcx, rsi
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
test byte [rsp + 0x50], 0x10
mov rcx, rdi
je 0x1800148f9
call fcn.180014510
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x18001490a
test rsi, rsi
je 0x180014807
mov rcx, rsi
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
jmp 0x180014807
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 0x180014610
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 0x180014963
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test rdi, rdi
je 0x180014955
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
mov eax, ebx
add rsp, 0x2a8
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rdi, rdi
je 0x180014971
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
xor eax, eax
add rsp, 0x2a8
pop rdi
pop rsi
pop rbx
pop rbp
ret