Function at 0x140013b30
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, [0x1400206e0]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x140013c00
mov r15, qword [rdi + 0x10]
movabs rdx, 0x7ffffffffffffffe
mov rcx, rdx
sub rcx, r15
cmp rcx, 0x33
jbe 0x140013fb0
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 0x140013c07
mov rcx, r14
or rcx, 7
cmp rcx, rdx
ja 0x140013fba
cmp rcx, 0xa
mov r12d, 0xa
cmova r12, rcx
lea rcx, [r12 + r12]
cmp r12, 0x7ff
jb 0x140013c13
movabs rdx, 0x7fffffffffffffec
cmp r12, rdx
jae 0x140013fba
add rcx, 0x29
call fcn.140015070
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x140013c1f
xor esi, esi
jmp 0x140013f7e
lea rcx, [rbp + 0x38]
mov r12d, 7
jmp 0x140013c2a
add rcx, 2
call fcn.140015070
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 [0x140022534]
mov qword [rbx + 0x60], rax
movups xmm0, xmmword [0x140022524]
movups xmmword [rbx + 0x50], xmm0
movups xmm0, xmmword [0x140022514]
movups xmmword [rbx + 0x40], xmm0
movups xmm0, xmmword [0x140022504]
movups xmmword [rbx + 0x30], xmm0
movups xmm0, xmmword [0x1400224f4]
movups xmmword [rbx + 0x20], xmm0
movups xmm0, xmmword [0x1400224e4]
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 0x140013ca9
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 0x140013fb5
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 0x140013d6f
mov rax, r14
or rax, 7
cmp rax, rcx
ja 0x140013fbf
cmp rax, 0xa
mov r13d, 0xa
cmova r13, rax
mov rcx, r13
add rcx, r13
cmp r13, 0x7ff
mov qword [rbp - 0x38], rdx
jb 0x140013d5b
movabs rax, 0x7fffffffffffffec
cmp r13, rax
jae 0x140013fbf
add rcx, 0x29
call fcn.140015070
mov rsi, rax
add rsi, 0x27
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x140013d67
add rcx, 2
call fcn.140015070
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 [0x14002257e]
mov dword [rsi + 0x40], eax
movups xmm0, xmmword [0x14002256e]
movups xmmword [rsi + 0x30], xmm0
movups xmm0, xmmword [0x14002255e]
movups xmmword [rsi + 0x20], xmm0
movups xmm0, xmmword [0x14002254e]
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 0x140013dd5
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 0x140013dfe
mov sil, 1
cmp eax, 2
je 0x140013ef6
jmp 0x140013ef4
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.14000a130
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 0x140013ecf
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.14000a130
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 0x140013ee3
mov rdx, qword [rbp - 0x10]
jmp 0x140013ee7
cmp qword [rbp + 8], 7
jbe 0x140013f94
mov rdx, qword [rbp - 0x10]
jmp 0x140013f98
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 0x140013f3c
mov rcx, qword [rbp - 0x10]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x140013f37
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x140013fc4
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.1400150b4
mov rax, qword [rbp - 0x18]
cmp rax, 8
jb 0x140013f7e
mov rcx, qword [rbp - 0x30]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x140013f79
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x140013fc4
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.1400150b4
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 0x140013ef6
call fcn.140003980
call fcn.140003980
call fcn.1400039a0
call fcn.1400039a0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3