Function at 0x14000fd00
Capabilities:
Delete registry key

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov rdi, rcx
lea rcx, [0x14001b482]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x14000fdd0
mov r15, qword [rdi + 0x10]
movabs rdx, 0x7ffffffffffffffe
mov rcx, rdx
sub rcx, r15
cmp rcx, 0x33
jbe 0x140010180
mov r13, qword [rdi]
mov rsi, qword [rdi + 0x18]
mov qword [rbp - 0x30], 0
lea r14, [r15 + 0x34]
lea rbx, [rbp - 0x30]
cmp r14, 8
mov qword [rbp - 0x40], rax
jb 0x14000fdd7
mov rcx, r14
or rcx, 7
cmp rcx, rdx
ja 0x14001018a
cmp rcx, 0xa
mov r12d, 0xa
cmova r12, rcx
lea rcx, [r12 + r12]
cmp r12, 0x7ff
jb 0x14000fde3
movabs rdx, 0x7fffffffffffffec
cmp r12, rdx
jae 0x14001018a
add rcx, 0x29
call fcn.14001091c
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x14000fdef
xor esi, esi
jmp 0x14001014e
lea rcx, [rbp + 0x38]
mov r12d, 7
jmp 0x14000fdfa
add rcx, 2
call fcn.14001091c
mov rbx, rax
mov qword [rbp - 0x30], rbx
mov rcx, rbx
add rcx, 0x68
cmp rsi, 7
cmovbe r13, rdi
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], r12
mov rax, qword [0x14001d1ca]
mov qword [rbx + 0x60], rax
movups xmm0, xmmword [0x14001d1ba]
movups xmmword [rbx + 0x50], xmm0
movups xmm0, xmmword [0x14001d1aa]
movups xmmword [rbx + 0x40], xmm0
movups xmm0, xmmword [0x14001d19a]
movups xmmword [rbx + 0x30], xmm0
movups xmm0, xmmword [0x14001d18a]
movups xmmword [rbx + 0x20], xmm0
movups xmm0, xmmword [0x14001d17a]
movups xmmword [rbx + 0x10], xmm0
movups xmm0, xmmword [str.RegistryMachineSystemCurrentControlSetServices_]
movups xmmword [rbx], xmm0
lea r8, [r15 + r15]
mov rdx, r13
call sub.VCRUNTIME140.dll_memcpy
mov word [rbx + r15*2 + 0x68], 0
cmp qword [rbp - 0x18], 7
lea rdx, [rbp - 0x30]
jbe 0x14000fe79
mov rdx, qword [rbp - 0x30]
lea rcx, [rbp - 0x58]
call sub.ntdll.dll_RtlInitUnicodeString
mov rbx, qword [rdi + 0x10]
movabs rcx, 0x7ffffffffffffffe
mov rax, rcx
sub rax, rbx
cmp rax, 0x21
jbe 0x140010185
mov rdx, qword [rdi]
mov r12, qword [rdi + 0x18]
mov qword [rbp - 0x10], 0
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
lea r14, [rbx + 0x22]
lea r15, [rbp - 0x10]
mov r13d, 7
mov rsi, r15
cmp r14, 8
jb 0x14000ff3f
mov rax, r14
or rax, 7
cmp rax, rcx
ja 0x14001018f
cmp rax, 0xa
mov r13d, 0xa
cmova r13, rax
mov rcx, r13
add rcx, r13
cmp r13, 0x7ff
mov qword [rbp - 0x38], rdx
jb 0x14000ff2b
movabs rax, 0x7fffffffffffffec
cmp r13, rax
jae 0x14001018f
add rcx, 0x29
call fcn.14001091c
mov rsi, rax
add rsi, 0x27
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x14000ff37
add rcx, 2
call fcn.14001091c
mov rsi, rax
mov rdx, qword [rbp - 0x38]
mov qword [rbp - 0x10], rsi
lea rcx, [rsi + 0x44]
cmp r12, 7
cmova rdi, rdx
mov qword [rbp], r14
mov qword [rbp + 8], r13
mov eax, dword [0x14001d214]
mov dword [rsi + 0x40], eax
movups xmm0, xmmword [0x14001d204]
movups xmmword [rsi + 0x30], xmm0
movups xmm0, xmmword [0x14001d1f4]
movups xmmword [rsi + 0x20], xmm0
movups xmm0, xmmword [0x14001d1e4]
movups xmmword [rsi + 0x10], xmm0
movups xmm0, xmmword [str.SYSTEMCurrentControlSetServices_]
movups xmmword [rsi], xmm0
lea r8, [rbx + rbx]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov word [rsi + rbx*2 + 0x44], 0
cmp qword [rbp + 8], 7
jbe 0x14000ffa5
mov r15, qword [rbp - 0x10]
lea r8, [rbp - 0x48]
mov rcx, 0xffffffff80000002
mov rdx, r15
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
je 0x14000ffce
mov sil, 1
cmp eax, 2
je 0x1400100c6
jmp 0x1400100c4
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rdx, str.NtUnloadDriver
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [rbp - 0x58]
call rax
mov esi, eax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, str.___NtUnloadDriver_Status_0x
call fcn.1400015e0
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov edx, 0xfffff1ff
and edx, dword [rax + rcx + 0x18]
or edx, 0x800
mov dword [rax + rcx + 0x18], edx
mov rcx, rax
mov edx, esi
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___long_int____ptr64]
mov rdi, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rdi
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_wchar_t___cdecl_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::widen_char_const___ptr64]
mov rcx, rdi
mov edx, eax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::put_wchar_t____ptr64]
mov rcx, rdi
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::flush_void____ptr64]
test esi, esi
je 0x14001009f
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, str.____Driver_Unload_Failed__
call fcn.1400015e0
mov rsi, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rsi
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_wchar_t___cdecl_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::widen_char_const___ptr64]
mov rcx, rsi
mov edx, eax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::put_wchar_t____ptr64]
mov rcx, rsi
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::flush_void____ptr64]
cmp qword [rbp + 8], 7
jbe 0x1400100b3
mov rdx, qword [rbp - 0x10]
jmp 0x1400100b7
cmp qword [rbp + 8], 7
jbe 0x140010164
mov rdx, qword [rbp - 0x10]
jmp 0x140010168
lea rdx, [rbp - 0x10]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteTreeW]
xor esi, esi
mov rax, qword [rbp + 8]
cmp rax, 8
jb 0x14001010c
mov rcx, qword [rbp - 0x10]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x140010107
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x140010194
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.140010960
mov rax, qword [rbp - 0x18]
cmp rax, 8
jb 0x14001014e
mov rcx, qword [rbp - 0x30]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x140010149
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x140010194
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.140010960
mov eax, esi
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rdx, [rbp - 0x10]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteTreeW]
test eax, eax
sete sil
jmp 0x1400100c6
call fcn.14000aac0
call fcn.14000aac0
call fcn.14000aae0
call fcn.14000aae0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3