Function at 0x1400131c0
Capabilities:
Set registry value

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xe8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x60], 0xfffffffffffffffe
mov r14, rcx
lea rcx, [rbp - 0x30]
call fcn.140005de0
mov rdi, qword [rbp - 0x20]
movabs rax, 0x7ffffffffffffffe
sub rax, rdi
cmp rax, 0x21
jbe 0x1400138fa
mov r13, qword [rbp - 0x30]
mov r12, qword [rbp - 0x18]
mov qword [rbp - 0x10], 0
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
lea r15, [rdi + 0x22]
cmp r15, 8
jb 0x14001328c
mov rax, r15
or rax, 7
movabs rcx, 0x7ffffffffffffffe
cmp rax, rcx
ja 0x14001390a
cmp rax, 0xa
mov ebx, 0xa
cmova rbx, rax
lea rcx, [rbx + rbx]
cmp rbx, 0x7ff
jb 0x140013297
movabs rax, 0x7fffffffffffffec
cmp rbx, rax
jae 0x14001390a
add rcx, 0x29
call fcn.140015070
mov rsi, rax
add rsi, 0x27
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x1400132a3
lea rsi, [rbp - 0x10]
mov ebx, 7
jmp 0x1400132a7
add rcx, 2
call fcn.140015070
mov rsi, rax
mov qword [rbp - 0x10], rsi
lea rcx, [rsi + 0x44]
cmp r12, 7
lea rax, [rbp - 0x30]
cmovbe r13, rax
mov qword [rbp], r15
mov qword [rbp + 8], rbx
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, [rdi + rdi]
mov rdx, r13
call sub.VCRUNTIME140.dll_memcpy
mov word [rsi + rdi*2 + 0x44], 0
mov rdi, qword [r14 + 0x10]
movabs rax, 0x7ffffffffffffffe
sub rax, rdi
cmp rax, 3
jbe 0x1400138ff
mov r13, qword [r14]
mov rbx, qword [r14 + 0x18]
mov qword [rbp + 0x10], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
lea r12, [rdi + 4]
cmp r12, 8
jb 0x1400133a3
mov rax, r12
or rax, 7
movabs rcx, 0x7ffffffffffffffe
cmp rax, rcx
ja 0x14001390f
cmp rax, 0xa
mov r15d, 0xa
cmova r15, rax
lea rcx, [r15 + r15]
cmp r15, 0x7ff
jb 0x1400133b3
movabs rax, 0x7fffffffffffffec
cmp r15, rax
jae 0x14001390f
add rcx, 0x29
call fcn.140015070
mov rsi, rax
add rsi, 0x27
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x1400133bf
lea rsi, [rbp + 0x10]
lea rcx, [rbp + 0x18]
mov r15d, 7
jmp 0x1400133ca
add rcx, 2
call fcn.140015070
mov rsi, rax
mov qword [rbp + 0x10], rsi
mov rcx, rsi
add rcx, 8
cmp rbx, 7
cmova r14, r13
mov qword [rbp + 0x20], r12
mov qword [rbp + 0x28], r15
movabs rax, 0x5c003f003f005c
mov qword [rsi], rax
lea r8, [rdi + rdi]
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
mov word [rsi + rdi*2 + 8], 0
cmp qword [rbp + 8], 7
jbe 0x140013407
mov rdx, qword [rbp - 0x10]
jmp 0x14001340b
lea rdx, [rbp - 0x10]
lea r8, [rbp + 0x50]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
je 0x140013461
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, str.____Cant_create_service_key
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]
jmp 0x14001355e
mov eax, dword [rbp + 0x20]
add eax, eax
cmp qword [rbp + 0x28], 7
jbe 0x140013473
mov rdx, qword [rbp + 0x10]
jmp 0x140013477
lea rdx, [rbp + 0x10]
mov rcx, qword [rbp + 0x50]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdx
lea r8, str.ImagePath
xor edx, edx
mov r9d, 2
call qword [sym.imp.ADVAPI32.dll_RegSetKeyValueW]
mov rcx, qword [rbp + 0x50]
test eax, eax
je 0x1400134e5
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, str.____Cant_create_ImagePath_registry_value
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]
jmp 0x14001355e
lea rax, [0x14002003c]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 4
lea r8, str.Type
xor edx, edx
mov r9d, 4
call qword [sym.imp.ADVAPI32.dll_RegSetKeyValueW]
mov esi, eax
mov rcx, qword [rbp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
je 0x140013648
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, str.____Cant_create_Type_registry_value
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]
xor esi, esi
mov rax, qword [rbp + 0x28]
cmp rax, 8
jb 0x1400135a6
mov rcx, qword [rbp + 0x10]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x1400135a1
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x140013904
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.1400150b4
mov rax, qword [rbp + 8]
cmp rax, 8
jb 0x1400135ec
mov rcx, qword [rbp - 0x10]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x1400135e7
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x140013904
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.1400150b4
mov rax, qword [rbp - 0x18]
cmp rax, 8
jb 0x140013632
mov rcx, qword [rbp - 0x30]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x14001362d
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x140013904
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.1400150b4
mov eax, esi
add rsp, 0xe8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, [0x1400206e0]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x14001355e
mov rsi, rax
lea rdx, str.RtlAdjustPrivilege
mov rbx, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call rbx
mov rdi, rax
lea rdx, str.NtLoadDriver
mov rcx, rsi
call rbx
mov qword [rbp - 0x38], rax
lea r9, [rbp + 0x5f]
mov ecx, 0xa
mov dl, 1
xor r8d, r8d
call rdi
test eax, eax
js 0x140013744
mov r15, qword [rbp - 0x20]
movabs rax, 0x7ffffffffffffffe
sub rax, r15
cmp rax, 0x33
jbe 0x140013914
mov rsi, qword [rbp - 0x30]
mov r14, qword [rbp - 0x18]
mov qword [rbp + 0x30], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x40], xmm0
lea r13, [r15 + 0x34]
lea r12, [rbp + 0x30]
cmp r13, 8
jb 0x140013785
mov rax, r13
or rax, 7
movabs rcx, 0x7ffffffffffffffe
cmp rax, rcx
ja 0x140013919
cmp rax, 0xa
mov edi, 0xa
cmova rdi, rax
lea rcx, [rdi + rdi]
cmp rdi, 0x7ff
jb 0x140013796
movabs rax, 0x7fffffffffffffec
cmp rdi, rax
jae 0x140013919
add rcx, 0x29
call fcn.140015070
mov rbx, rax
add rbx, 0x27
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x1400137a2
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, str.Fatal_error:_failed_to_acquire_SE_LOAD_DRIVER_PRIVILEGE._Make_sure_you_are_running_as_administrator.
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]
jmp 0x14001355e
lea rcx, [rbp + 0x98]
mov edi, 7
mov rbx, r12
jmp 0x1400137ad
add rcx, 2
call fcn.140015070
mov rbx, rax
mov qword [rbp + 0x30], rbx
mov rcx, rbx
add rcx, 0x68
cmp r14, 7
lea rdx, [rbp - 0x30]
cmova rdx, rsi
mov qword [rbp + 0x40], r13
mov qword [rbp + 0x48], rdi
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]
call sub.VCRUNTIME140.dll_memcpy
mov word [rbx + r15*2 + 0x68], 0
cmp qword [rbp + 0x48], 7
jbe 0x140013829
mov r12, qword [rbp + 0x30]
lea rsi, [rbp - 0x48]
mov rcx, rsi
mov rdx, r12
call sub.ntdll.dll_RtlInitUnicodeString
mov rcx, rsi
call qword [rbp - 0x38]
mov edi, 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.___NtLoadDriver_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, edi
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 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 edi, 0xc000010e
sete sil
test edi, edi
setns bl
mov rax, qword [rbp + 0x48]
cmp rax, 8
jb 0x1400138f2
mov rcx, qword [rbp + 0x30]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x1400138ed
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x140013904
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.1400150b4
or sil, bl
jmp 0x140013560
call fcn.140003980
call fcn.140003980
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.1400039a0
call fcn.1400039a0
call fcn.140003980
call fcn.1400039a0
int3