Function at 0x140010fe0
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.140006a40
mov rdi, qword [rbp - 0x20]
movabs rax, 0x7ffffffffffffffe
sub rax, rdi
cmp rax, 0x21
jbe 0x1400115e0
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 0x1400110ac
mov rax, r15
or rax, 7
movabs rcx, 0x7ffffffffffffffe
cmp rax, rcx
ja 0x1400115ef
cmp rax, 0xb
mov ebx, 0xa
cmovae rbx, rax
lea rcx, [rbx + rbx]
cmp rbx, 0x7ff
jb 0x1400110b7
movabs rax, 0x7fffffffffffffec
cmp rbx, rax
jae 0x1400115ef
add rcx, 0x29
call fcn.1400ad850
mov rsi, rax
add rsi, 0x27
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x1400110c3
lea rsi, [rbp - 0x10]
mov ebx, 7
jmp 0x1400110c7
add rcx, 2
call fcn.1400ad850
mov rsi, rax
mov qword [rbp - 0x10], rsi
lea rcx, [rsi + 0x44]
cmp r12, 8
lea rax, [rbp - 0x30]
cmovb r13, rax
mov qword [rbp], r15
mov qword [rbp + 8], rbx
mov eax, dword [0x140270e04]
mov dword [rsi + 0x40], eax
movups xmm0, xmmword [0x140270df4]
movups xmmword [rsi + 0x30], xmm0
movups xmm0, xmmword [0x140270de4]
movups xmmword [rsi + 0x20], xmm0
movups xmm0, xmmword [0x140270dd4]
movups xmmword [rsi + 0x10], xmm0
movups xmm0, xmmword [str.SYSTEMCurrentControlSetServices_]
movups xmmword [rsi], xmm0
lea r8, [rdi + rdi]
mov rdx, r13
call fcn.1401d4a60
mov word [rsi + rdi*2 + 0x44], 0
mov rdi, qword [r14 + 0x10]
movabs rax, 0x7ffffffffffffffe
sub rax, rdi
cmp rax, 3
jbe 0x1400115e5
mov r13, qword [r14]
mov rbx, qword [r14 + 0x18]
mov qword [rbp + 0x30], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x40], xmm0
lea r12, [rdi + 4]
cmp r12, 8
jb 0x1400111c3
mov rax, r12
or rax, 7
movabs rcx, 0x7ffffffffffffffe
cmp rax, rcx
ja 0x1400115f4
cmp rax, 0xb
mov r15d, 0xa
cmovae r15, rax
lea rcx, [r15 + r15]
cmp r15, 0x7ff
jb 0x1400111d3
movabs rax, 0x7fffffffffffffec
cmp r15, rax
jae 0x1400115f4
add rcx, 0x29
call fcn.1400ad850
mov rsi, rax
add rsi, 0x27
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x1400111df
lea rsi, [rbp + 0x30]
lea rcx, [rbp + 0x38]
mov r15d, 7
jmp 0x1400111ea
add rcx, 2
call fcn.1400ad850
mov rsi, rax
mov qword [rbp + 0x30], rsi
mov rcx, rsi
add rcx, 8
cmp rbx, 8
cmovae r14, r13
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x48], r15
movabs rax, 0x5c003f003f005c
mov qword [rsi], rax
lea r8, [rdi + rdi]
mov rdx, r14
call fcn.1401d4a60
mov word [rsi + rdi*2 + 8], 0
cmp qword [rbp + 8], 8
jb 0x140011227
mov rdx, qword [rbp - 0x10]
jmp 0x14001122b
lea rdx, [rbp - 0x10]
lea r8, [rbp + 0x50]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
je 0x14001124c
lea rcx, str.____Cant_create_service_key_n
jmp 0x1400112df
mov eax, dword [rbp + 0x40]
add eax, eax
cmp qword [rbp + 0x48], 8
jb 0x14001125e
mov rdx, qword [rbp + 0x30]
jmp 0x140011262
lea rdx, [rbp + 0x30]
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 0x14001129b
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, str.____Cant_create_ImagePath_registry_value_n
jmp 0x1400112df
lea rax, [0x140211704]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 4
lea r8, [0x140270d10]
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 0x1400113ce
lea rcx, str.____Cant_create_Type_registry_value_n
call fcn.1400040b0
xor esi, esi
mov rax, qword [rbp + 0x48]
cmp rax, 8
jb 0x14001132c
mov rcx, qword [rbp + 0x30]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x140011327
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x1400115ea
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.1400ad894
mov rax, qword [rbp + 8]
cmp rax, 8
jb 0x140011372
mov rcx, qword [rbp - 0x10]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x14001136d
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x1400115ea
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.1400ad894
mov rax, qword [rbp - 0x18]
cmp rax, 8
jb 0x1400113b8
mov rcx, qword [rbp - 0x30]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x1400113b3
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x1400115ea
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.1400ad894
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, [0x14026fe0c]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x1400112e4
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 0x1400114c6
mov r15, qword [rbp - 0x20]
movabs rax, 0x7ffffffffffffffe
sub rax, r15
cmp rax, 0x33
jbe 0x1400115f9
mov rsi, qword [rbp - 0x30]
mov r14, qword [rbp - 0x18]
mov qword [rbp + 0x10], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
lea r13, [r15 + 0x34]
lea r12, [rbp + 0x10]
cmp r13, 8
jb 0x1400114d2
mov rax, r13
or rax, 7
movabs rcx, 0x7ffffffffffffffe
cmp rax, rcx
ja 0x1400115fe
cmp rax, 0xb
mov edi, 0xa
cmovae rdi, rax
lea rcx, [rdi + rdi]
cmp rdi, 0x7ff
jb 0x1400114e0
movabs rax, 0x7fffffffffffffec
cmp rdi, rax
jae 0x1400115fe
add rcx, 0x29
call fcn.1400ad850
mov rbx, rax
add rbx, 0x27
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x1400114ec
lea rcx, str.Fatal_error:_failed_to_acquire_SE_LOAD_DRIVER_PRIVILEGE._Make_sure_you_are_running_as_administrator._n
jmp 0x1400112df
lea rcx, [rbp + 0x78]
mov edi, 7
mov rbx, r12
jmp 0x1400114f7
add rcx, 2
call fcn.1400ad850
mov rbx, rax
mov qword [rbp + 0x10], rbx
mov rcx, rbx
add rcx, 0x68
cmp r14, 8
lea rdx, [rbp - 0x30]
cmovae rdx, rsi
mov qword [rbp + 0x20], r13
mov qword [rbp + 0x28], rdi
mov rax, qword [0x140270dba]
mov qword [rbx + 0x60], rax
movups xmm0, xmmword [0x140270daa]
movups xmmword [rbx + 0x50], xmm0
movups xmm0, xmmword [0x140270d9a]
movups xmmword [rbx + 0x40], xmm0
movups xmm0, xmmword [0x140270d8a]
movups xmmword [rbx + 0x30], xmm0
movups xmm0, xmmword [0x140270d7a]
movups xmmword [rbx + 0x20], xmm0
movups xmm0, xmmword [0x140270d6a]
movups xmmword [rbx + 0x10], xmm0
movups xmm0, xmmword [str.RegistryMachineSystemCurrentControlSetServices_]
movups xmmword [rbx], xmm0
lea r8, [r15 + r15]
call fcn.1401d4a60
mov word [rbx + r15*2 + 0x68], 0
cmp qword [rbp + 0x28], 8
jb 0x140011573
mov r12, qword [rbp + 0x10]
lea rsi, [rbp - 0x48]
mov rcx, rsi
mov rdx, r12
call sub.ntdll.dll_RtlInitUnicodeString
mov rcx, rsi
call qword [rbp - 0x38]
cmp eax, 0xc000010e
sete sil
test eax, eax
setns bl
mov rax, qword [rbp + 0x28]
cmp rax, 8
jb 0x1400115d8
mov rcx, qword [rbp + 0x10]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x1400115d3
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x1400115ea
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.1400ad894
or sil, bl
jmp 0x1400112e6
call fcn.1400035c0
call fcn.1400035c0
call fcn.1401e54b4
call fcn.1400035e0
call fcn.1400035e0
call fcn.1400035c0
call fcn.1400035e0
int3