Function at 0x14006cf70
Capabilities:
Query service status

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov rax, qword [0x1404953c0]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov r15, rdx
movzx ebx, cl
xor r12d, r12d
mov dword [rsp + 0x20], r12d
xor r14b, r14b
mov r8d, 0xa0000000
lea rdx, str.ServicesActive
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rsi, rax
test rax, rax
jne 0x14006d113
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea r9, [rbp + 0x5d]
nop word [rax + rax]
dec r9
mov eax, 0xcccccccd
mul ecx
shr edx, 3
movzx eax, dl
shl al, 2
lea r8d, [rax + rdx]
add r8b, r8b
sub cl, r8b
add cl, 0x30
mov byte [r9], cl
mov ecx, edx
test edx, edx
jne 0x14006cfe0
lea r8, [rbp + 0x5d]
mov rdx, r9
lea rcx, [rbp - 0x58]
call fcn.14005e8b0
mov ebx, 2
mov dword [rsp + 0x20], ebx
and ebx, 0xfffffffd
mov dword [rsp + 0x20], ebx
or ebx, 1
mov dword [rsp + 0x20], ebx
mov r9d, 6
lea r8, str.Error
xor edx, edx
lea rcx, [rbp - 0x58]
call fcn.140015db0
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x58], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x48], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x58], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
or ebx, 4
mov dword [rsp + 0x20], ebx
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str._calling_OpenSCManager
lea rcx, [rsp + 0x48]
call fcn.14002ecb0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x28], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x38], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
or ebx, 8
mov dword [rsp + 0x20], ebx
lea rdx, [rsp + 0x28]
mov rcx, r15
call fcn.1400127c0
and ebx, 0xfffffff7
mov dword [rsp + 0x20], ebx
lea rcx, [rsp + 0x28]
call fcn.140016400
and ebx, 0xfffffffb
mov dword [rsp + 0x20], ebx
lea rcx, [rsp + 0x48]
call fcn.140016400
and ebx, 0xfffffffe
mov dword [rsp + 0x20], ebx
lea rcx, [rbp - 0x58]
call fcn.140016400
mov rcx, r15
call fcn.14005f4f0
jmp 0x14006d504
lea rax, str.MB3Service
lea rdx, str.MBAMService
test bl, bl
cmovne rdx, rax
mov r8d, 0x80000000
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rdi, rax
test rax, rax
je 0x14006d3bf
lea rdx, [rbp + 0x28]
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x14006d2b7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea r9, [rbp + 0x5d]
nop dword [rax]
nop dword [rax + rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x14006d170
lea r8, [rbp + 0x5d]
mov rdx, r9
lea rcx, [rbp - 0x38]
call fcn.14005e8b0
mov ebx, 0x200
mov dword [rsp + 0x20], ebx
btr ebx, 9
mov dword [rsp + 0x20], ebx
bts ebx, 8
mov dword [rsp + 0x20], ebx
mov r9d, 6
lea r8, str.Error
xor edx, edx
lea rcx, [rbp - 0x38]
call fcn.140015db0
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x78], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x68], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x78], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
bts ebx, 0xa
mov dword [rsp + 0x20], ebx
mov r8d, 0x1b
lea rdx, str._calling_QueryServiceStatus
lea rcx, [rsp + 0x68]
call fcn.14002ecb0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x28], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x38], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
bts ebx, 0xb
mov dword [rsp + 0x20], ebx
lea rdx, [rsp + 0x28]
mov rcx, r15
call fcn.1400127c0
btr ebx, 0xb
mov dword [rsp + 0x20], ebx
lea rcx, [rsp + 0x28]
call fcn.140016400
btr ebx, 0xa
mov dword [rsp + 0x20], ebx
lea rcx, [rsp + 0x68]
call fcn.140016400
btr ebx, 8
mov dword [rsp + 0x20], ebx
lea rcx, [rbp - 0x38]
call fcn.140016400
mov rcx, r15
call fcn.14005f4f0
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rdi
jmp 0x14006d4fe
mov r8d, dword [rbp + 0x2c]
cmp r8d, 4
jne 0x14006d2c9
mov r14b, 1
jmp 0x14006d3a4
lea r9, [rbp + 0x5d]
nop dword [rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x14006d2d0
lea r8, [rbp + 0x5d]
mov rdx, r9
lea rcx, [rbp - 0x18]
call fcn.14005e8b0
mov ebx, 0x2000
mov dword [rsp + 0x20], ebx
btr ebx, 0xd
mov dword [rsp + 0x20], ebx
bts ebx, 0xc
mov dword [rsp + 0x20], ebx
mov r9d, sendto
lea r8, str.Service_state_is:
xor edx, edx
lea rcx, [rbp - 0x18]
call fcn.140015db0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x28], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x38], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
bts ebx, 0xe
mov dword [rsp + 0x20], ebx
lea rdx, [rsp + 0x28]
mov rcx, r15
call fcn.1400127c0
btr ebx, 0xe
mov dword [rsp + 0x20], ebx
lea rcx, [rsp + 0x28]
call fcn.140016400
btr ebx, 0xc
mov dword [rsp + 0x20], ebx
lea rcx, [rbp - 0x18]
call fcn.140016400
mov rcx, r15
call fcn.14005f4f0
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
movzx eax, r14b
jmp 0x14006d506
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea r9, [rbp + 0x5d]
nop dword [rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x14006d3d0
lea r8, [rbp + 0x5d]
mov rdx, r9
lea rcx, [rbp + 8]
call fcn.14005e8b0
mov ebx, 0x20
mov dword [rsp + 0x20], ebx
and ebx, 0xffffffdf
mov dword [rsp + 0x20], ebx
or ebx, 0x10
mov dword [rsp + 0x20], ebx
mov r9d, 6
lea r8, str.Error
xor edx, edx
lea rcx, [rbp + 8]
call fcn.140015db0
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x68], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x78], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x68], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
or ebx, 0x40
mov dword [rsp + 0x20], ebx
mov r8d, reloc.WS2_32.dll_setsockopt
lea rdx, str._calling_OpenServiceW
lea rcx, [rbp - 0x78]
call fcn.14002ecb0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x28], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x38], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
bts ebx, 7
mov dword [rsp + 0x20], ebx
lea rdx, [rsp + 0x28]
mov rcx, r15
call fcn.1400127c0
btr ebx, 7
mov dword [rsp + 0x20], ebx
lea rcx, [rsp + 0x28]
call fcn.140016400
and ebx, 0xffffffbf
mov dword [rsp + 0x20], ebx
lea rcx, [rbp - 0x78]
call fcn.140016400
and ebx, 0xffffffef
mov dword [rsp + 0x20], ebx
lea rcx, [rbp + 8]
call fcn.140016400
mov rcx, r15
call fcn.14005f4f0
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor al, al
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.1402b5c00
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret