Function at 0x1000020bc
Capabilities:
Delete file
Delete registry key
Enumerate files on windows
Get common file path

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
sub rsp, 0xf40
mov rax, qword [0x10000e160]
xor rax, rsp
mov qword [rsp + 0xf30], rax
xor edx, edx
lea rax, [rsp + 0x30]
lea r9, [0x100001890]
lea r8d, [rdx + 1]
lea rcx, [0x1000016c0]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ole32.dll_CoCreateInstance]
xor ebp, ebp
cmp eax, ebp
mov ebx, eax
jl 0x1000023e5
mov ebx, 0x206
lea rcx, [rsp + 0x902]
xor edx, edx
mov r8, rbx
mov word [rsp + 0x900], bp
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x4e2]
mov r8, rbx
xor edx, edx
mov word [rsp + 0x4e0], bp
call sub.msvcrt.dll_memset
lea r11, [rsp + 0x900]
lea edx, [rbp + 9]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], r11
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
cmp eax, ebp
mov ebx, eax
jl 0x1000023c2
lea r8, [rsp + 0x900]
lea rax, [rsp + 0x4e0]
mov r12d, 0x104
lea rcx, [rsp + 0x4e0]
mov ebx, ebp
sub r8, rax
mov rdx, r12
lea rax, [rdx + 0x7ffffefa]
cmp rax, rbp
je 0x1000021c4
movzx eax, word [r8 + rcx]
cmp ax, bp
je 0x1000021c4
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1000021a1
cmp rdx, rbp
jne 0x1000021d2
sub rcx, 2
mov ebx, 0x8007007a
cmp ebx, ebp
mov word [rcx], bp
jl 0x1000023c2
lea r8, [0x1000017d8]
lea rcx, [rsp + 0x4e0]
mov rdx, r12
call fcn.100002c64
cmp eax, ebp
mov ebx, eax
jl 0x1000023c2
lea rcx, [rsp + 0x40]
xor edx, edx
mov r8d, 0x250
call sub.msvcrt.dll_memset
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x4e0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x1000023c2
lea rdi, [rsp + 0x900]
lea rax, [rsp + 0x6f0]
sub rdi, rax
lea rcx, [rsp + 0x294]
xor edx, edx
mov r8d, 0x24c
mov dword [rsp + 0x290], ebp
call sub.msvcrt.dll_memset
mov r11, r12
lea rcx, [rsp + 0x6f0]
mov ebx, ebp
lea rax, [r11 + 0x7ffffefa]
cmp rax, rbp
je 0x10000228e
movzx eax, word [rdi + rcx]
cmp ax, bp
je 0x10000228e
mov word [rcx], ax
add rcx, 2
sub r11, 1
jne 0x10000226c
cmp r11, rbp
jne 0x10000229c
sub rcx, 2
mov ebx, 0x8007007a
cmp ebx, ebp
mov word [rcx], bp
jl 0x1000023a3
lea r8, [0x100001748]
lea rcx, [rsp + 0x6f0]
mov rdx, r12
call fcn.100002c64
cmp eax, ebp
mov ebx, eax
jl 0x1000023a3
lea r8, [rsp + 0x6c]
lea rcx, [rsp + 0x6f0]
mov rdx, r12
call fcn.100002c64
cmp eax, ebp
mov ebx, eax
jl 0x1000023a3
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, [0x1000018a0]
mov rax, qword [rcx]
call qword [rax]
cmp eax, ebp
mov ebx, eax
jl 0x1000023a3
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x6f0]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rcx, qword [rsp + 0x38]
mov ebx, eax
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp ebx, ebp
jl 0x1000023a3
mov rcx, qword [rsp + 0x30]
lea r9, [rsp + 0x290]
lea rdx, [rsp + 0xd20]
mov rax, qword [rcx]
mov r8d, r12d
mov dword [rsp + 0x20], ebp
call qword [rax + 0x18]
cmp eax, ebp
mov ebx, eax
jl 0x1000023a3
lea rdx, [rsp + 0xb10]
mov r8d, r12d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp eax, ebp
mov ebx, eax
jl 0x1000023a3
lea rdx, [rsp + 0xb10]
lea rcx, [rsp + 0xd20]
call qword [sym.imp.msvcrt.dll__wcsicmp]
cmp eax, ebp
jne 0x1000023a3
lea rcx, [rsp + 0x6f0]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp eax, ebp
jne 0x1000023a3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rdx, [rsp + 0x40]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp eax, ebp
jne 0x100002243
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp ebx, ebp
jl 0x1000023e5
lea rdx, [0x100001780]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov eax, ebx
mov rcx, qword [rsp + 0xf30]
xor rcx, rsp
call fcn.10000ad60
lea r11, [rsp + 0xf40]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r12
ret