Function at 0x140012860
Capabilities:
Delete service

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x240
mov rax, qword [0x14006a080]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov rdi, rcx
add rcx, 0x62c
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x140012929
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x208
call fcn.1400220d0
mov r8d, 0x104
lea rdx, [rsp + 0x20]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x1400128e9
xor edx, edx
xor ecx, ecx
call fcn.140003ed0
mov rcx, rax
lea r8, str.GetModuleFileName_failed
lea rdx, [rdi + 0xa3c]
call fcn.140006510
mov eax, 0xffffffff
jmp 0x140012b15
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
xor ecx, ecx
movsxd rdx, eax
test eax, eax
je 0x140012917
nop dword [rax]
movzx eax, word [rsp + rcx*2 + 0x20]
inc rcx
cmp ax, 0x20
je 0x1400129fc
cmp rcx, rdx
jb 0x140012900
lea rcx, [rdi + 0x62c]
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, str.AsusROGLSLService
mov qword [rsp + 0x258], rsi
lea rcx, [rdi + 0x834]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rcx, rdi
call fcn.1400127b0
cmp qword [rdi + 8], 0
jne 0x140012b0b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x431
jne 0x140012ae5
lea rdx, [rdi + 0x834]
lea rcx, [rdi + 0x834]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
xor edx, edx
xor ecx, ecx
call fcn.140003ed0
mov rcx, rax
lea rdx, str.Open_control_start
call fcn.140005b00
mov rcx, qword [rdi]
lea rdx, [rdi + 0x834]
mov r8d, 0x10037
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
xor edx, edx
xor ecx, ecx
mov qword [rdi + 8], rax
call fcn.140003ed0
mov rcx, rax
lea rdx, str.Open_control_end
call fcn.140005b00
mov rbx, qword [rdi + 8]
xor edx, edx
xor ecx, ecx
call fcn.140003ed0
mov rcx, rax
test rbx, rbx
jne 0x140012a25
lea rdx, [rdi + 0xa3c]
xor r9d, r9d
lea r8, str._open_remote_control_failed
call fcn.140006510
mov eax, 0xffffffff
jmp 0x140012b0d
cmp word [rsp + 0x20], 0x22
lea rcx, [rdi + 0x62c]
je 0x14001291e
lea r8, [rsp + 0x20]
lea rdx, str.__s_
call fcn.140001d30
jmp 0x140012929
lea rdx, str.stop_control_start
call fcn.140005b00
mov rcx, rdi
call fcn.140012fa0
cmp eax, 0xffffffff
je 0x1400129f2
xor edx, edx
xor ecx, ecx
call fcn.140003ed0
mov rcx, rax
lea rdx, str.stop_control_end
call fcn.140005b00
mov rcx, rdi
call fcn.140012b40
test al, al
je 0x140012b0b
cmp qword [rdi + 8], 0
je 0x1400129f2
mov rcx, rdi
call fcn.140012fa0
cmp eax, 0xffffffff
je 0x1400129f2
mov rcx, qword [rdi + 8]
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
jne 0x140012ab9
xor edx, edx
xor ecx, ecx
call fcn.140003ed0
mov rcx, rax
lea r9, [rdi + 0x834]
lea r8, str.delete_control_fail___S
lea rdx, [rdi + 0xa3c]
call fcn.140006510
mov eax, 0xffffffff
jmp 0x140012b0d
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, rdi
call fcn.1400127b0
cmp qword [rdi + 8], 0
jne 0x140012b0b
xor edx, edx
xor ecx, ecx
call fcn.140003ed0
lea r8, str.new_remote_control_failed_twice
jmp 0x140012af5
xor edx, edx
xor ecx, ecx
call fcn.140003ed0
lea r8, str.new_remote_control_failed
mov rcx, rax
lea rdx, [rdi + 0xa3c]
call fcn.140006510
mov eax, 0xffffffff
jmp 0x140012b0d
xor eax, eax
mov rsi, qword [rsp + 0x258]
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.14001f550
mov rbx, qword [rsp + 0x260]
add rsp, 0x240
pop rdi
ret