Function at 0x100061dfc
Capabilities:
Query service status

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rax, rsp
sub rsp, 0x228
mov qword [rsp + 0x1c8], 0xfffffffffffffffe
mov r15, rdx
mov r14, rcx
xor r12d, r12d
mov qword [rax + 0x58], r12
mov qword [rsp + 0x28], r12
mov qword [rax + 0x60], r12
lea rcx, [rax + 0x58]
call fcn.100043bf4
mov rdx, r14
mov rcx, qword [rsp + 0x280]
call fcn.10004b7cc
lea rdx, [0x10000e0c0]
lea rcx, [rsp + 0x90]
call fcn.10001ff98
nop
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x280]
call fcn.10004be1c
nop
mov rbx, qword [rax]
lea ebp, [r12 + 1]
cmp rbx, r12
je 0x100061e96
lock add dword [rbx + 8], ebp
mov qword [rsp + 0x28], rbx
mov r13, 0xffffffffffffffff
mov rcx, qword [rsp + 0x80]
cmp rcx, r12
je 0x100061ed0
mov eax, r13d
lock xadd dword [rcx + 8], eax
add eax, r13d
jne 0x100061ec8
cmp rcx, r12
je 0x100061ec8
mov rax, qword [rcx]
mov edx, ebp
call qword [rax]
mov qword [rsp + 0x80], r12
lea rcx, [rsp + 0x90]
call fcn.10001fba0
cmp rbx, r12
jne 0x100061f9e
lea rcx, [rsp + 0xd0]
call fcn.10001fee0
nop
mov r8, qword [r14]
lea rdx, [0x100013f80]
lea rcx, [rsp + 0xd0]
call fcn.10001fd30
lea rdx, [rsp + 0x140]
mov qword [rsp + 0x30], rdx
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0x140]
call fcn.10001ff10
mov rdi, rax
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0xf8]
call fcn.10001fee0
nop
mov dword [rsp + 0x100], r12d
mov rdx, rdi
lea rcx, [rsp + 0xf8]
call fcn.10001ecdc
nop
mov rcx, rdi
call fcn.10001fba0
nop
lea rdx, [rsp + 0xf8]
lea rcx, [rsp + 0x168]
call fcn.10001ff10
nop
mov eax, dword [rsp + 0x100]
mov dword [rsp + 0x170], eax
lea rdx, [0x10007e9f8]
lea rcx, [rsp + 0x168]
call sub.msvcrt.dll__CxxThrowException
nop
lea rdx, [rsp + 0xb8]
mov rcx, rbx
call fcn.10004c7f8
nop
mov rdi, qword [rax]
cmp rdi, r12
je 0x100061fbb
lock add dword [rdi + 8], ebp
mov qword [rsp + 0x288], rdi
mov rcx, qword [rsp + 0xb8]
cmp rcx, r12
je 0x100061ff1
mov eax, r13d
lock xadd dword [rcx + 8], eax
add eax, r13d
jne 0x100061fe9
cmp rcx, r12
je 0x100061fe9
mov rax, qword [rcx]
mov edx, ebp
call qword [rax]
mov qword [rsp + 0xb8], r12
cmp rdi, r12
jne 0x1000620b2
lea rcx, [rsp + 0xc8]
call fcn.10001fee0
nop
mov r8, qword [r14]
lea rdx, [0x100013ff0]
lea rcx, [rsp + 0xc8]
call fcn.10001fd30
lea rdx, [rsp + 0x138]
mov qword [rsp + 0x30], rdx
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0x138]
call fcn.10001ff10
mov rdi, rax
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x118]
call fcn.10001fee0
nop
mov dword [rsp + 0x120], r12d
mov rdx, rdi
lea rcx, [rsp + 0x118]
call fcn.10001ecdc
nop
mov rcx, rdi
call fcn.10001fba0
nop
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x198]
call fcn.10001ff10
nop
mov eax, dword [rsp + 0x120]
mov dword [rsp + 0x1a0], eax
lea rdx, [0x10007e9f8]
lea rcx, [rsp + 0x198]
call sub.msvcrt.dll__CxxThrowException
nop
xor r8d, r8d
lea rdx, [rsp + 0x150]
mov rcx, rdi
call fcn.10004d52c
nop
mov r8, rax
lea rdx, [rsp + 0x68]
mov rcx, qword [rsp + 0x280]
call fcn.10004be1c
nop
mov rsi, qword [rax]
cmp rsi, r12
je 0x1000620e8
lock add dword [rsi + 8], ebp
mov qword [rsp + 0x28], rsi
mov eax, r13d
lock xadd dword [rbx + 8], eax
add eax, r13d
jne 0x100062105
mov rax, qword [rbx]
mov edx, ebp
mov rcx, rbx
call qword [rax]
nop
mov rcx, qword [rsp + 0x68]
cmp rcx, r12
je 0x10006212d
mov eax, r13d
lock xadd dword [rcx + 8], eax
add eax, r13d
jne 0x100062128
cmp rcx, r12
je 0x100062128
mov rax, qword [rcx]
mov edx, ebp
call qword [rax]
mov qword [rsp + 0x68], r12
lea rcx, [rsp + 0x150]
call fcn.10001fba0
cmp rsi, r12
jne 0x100062220
lea rcx, [rsp + 0x98]
call fcn.10001fee0
nop
mov r8, rbp
lea rdx, [rsp + 0x160]
mov rcx, rdi
call fcn.10004d328
nop
mov r9, qword [r14]
mov r8, qword [rax]
lea rdx, [0x100014080]
lea rcx, [rsp + 0x98]
call fcn.10001fd30
nop
lea rcx, [rsp + 0x160]
call fcn.10001fba0
lea rdx, [rsp + 0x148]
mov qword [rsp + 0x30], rdx
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x148]
call fcn.10001ff10
mov rdi, rax
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0xe8]
call fcn.10001fee0
nop
mov dword [rsp + 0xf0], r12d
mov rdx, rdi
lea rcx, [rsp + 0xe8]
call fcn.10001ecdc
nop
mov rcx, rdi
call fcn.10001fba0
nop
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x1b8]
call fcn.10001ff10
nop
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x1c0], eax
lea rdx, [0x10007e9f8]
lea rcx, [rsp + 0x1b8]
call sub.msvcrt.dll__CxxThrowException
nop
lea rdx, [rsp + 0x78]
mov rcx, rsi
call fcn.10004c7f8
nop
mov rbx, qword [rax]
cmp rbx, r12
je 0x10006223a
lock add dword [rbx + 8], ebp
mov qword [rsp + 0x288], rbx
mov eax, r13d
lock xadd dword [rdi + 8], eax
add eax, r13d
jne 0x10006225a
mov rax, qword [rdi]
mov edx, ebp
mov rcx, rdi
call qword [rax]
nop
mov rcx, qword [rsp + 0x78]
cmp rcx, r12
je 0x100062282
mov eax, r13d
lock xadd dword [rcx + 8], eax
add eax, r13d
jne 0x10006227d
cmp rcx, r12
je 0x10006227d
mov rax, qword [rcx]
mov edx, ebp
call qword [rax]
mov qword [rsp + 0x78], r12
cmp rbx, r12
jne 0x100062343
lea rcx, [rsp + 0xa0]
call fcn.10001fee0
nop
mov r8, qword [r14]
lea rdx, [0x1000140e0]
lea rcx, [rsp + 0xa0]
call fcn.10001fd30
lea rdx, [rsp + 0x158]
mov qword [rsp + 0x30], rdx
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x158]
call fcn.10001ff10
mov rdi, rax
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x108]
call fcn.10001fee0
nop
mov dword [rsp + 0x110], r12d
mov rdx, rdi
lea rcx, [rsp + 0x108]
call fcn.10001ecdc
nop
mov rcx, rdi
call fcn.10001fba0
nop
lea rdx, [rsp + 0x108]
lea rcx, [rsp + 0x178]
call fcn.10001ff10
nop
mov eax, dword [rsp + 0x110]
mov dword [rsp + 0x180], eax
lea rdx, [0x10007e9f8]
lea rcx, [rsp + 0x178]
call sub.msvcrt.dll__CxxThrowException
nop
lea rcx, [rsp + 0x20]
call fcn.10001fee0
nop
mov r8, rbp
lea rdx, [rsp + 0x48]
mov rcx, rbx
call fcn.10004d328
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.10001ecdc
nop
lea rcx, [rsp + 0x48]
call fcn.10001fba0
mov rdx, qword [rsp + 0x20]
cmp dword [rdx - 0x10], r12d
jne 0x100062438
lea rcx, [rsp + 0x88]
call fcn.10001fee0
nop
mov r8, qword [r14]
lea rdx, [0x100014780]
lea rcx, [rsp + 0x88]
call fcn.10001fd30
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x30], rdx
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x38]
call fcn.10001ff10
mov rdi, rax
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x128]
call fcn.10001fee0
nop
mov dword [rsp + 0x130], r12d
mov rdx, rdi
lea rcx, [rsp + 0x128]
call fcn.10001ecdc
nop
mov rcx, rdi
call fcn.10001fba0
nop
lea rdx, [rsp + 0x128]
lea rcx, [rsp + 0x188]
call fcn.10001ff10
nop
mov eax, dword [rsp + 0x130]
mov dword [rsp + 0x190], eax
lea rdx, [0x10007e9f8]
lea rcx, [rsp + 0x188]
call sub.msvcrt.dll__CxxThrowException
nop
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0xb0]
mov rcx, qword [rsp + 0x280]
call fcn.10004c080
nop
mov rbp, qword [rax]
cmp rbp, r12
je 0x100062460
lock add dword [rbp + 8], 1
mov qword [rsp + 0x28], rbp
mov eax, r13d
lock xadd dword [rsi + 8], eax
add eax, r13d
jne 0x100062480
mov rax, qword [rsi]
mov edx, 1
mov rcx, rsi
call qword [rax]
nop
mov rcx, qword [rsp + 0xb0]
cmp rcx, r12
je 0x1000624b1
mov eax, r13d
lock xadd dword [rcx + 8], eax
add eax, r13d
jne 0x1000624a9
cmp rcx, r12
je 0x1000624a9
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rsp + 0xb0], r12
cmp rbp, r12
jne 0x100062563
lea rcx, [rsp + 0x50]
call fcn.10001fee0
nop
mov r8, qword [r14]
lea rdx, [0x1000147f0]
lea rcx, [rsp + 0x50]
call fcn.10001fd30
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x38], rdx
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x30]
call fcn.10001ff10
mov rdi, rax
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0xd8]
call fcn.10001fee0
nop
mov dword [rsp + 0xe0], r12d
mov rdx, rdi
lea rcx, [rsp + 0xd8]
call fcn.10001ecdc
nop
mov rcx, rdi
call fcn.10001fba0
nop
lea rdx, [rsp + 0xd8]
lea rcx, [rsp + 0x1a8]
call fcn.10001ff10
nop
mov eax, dword [rsp + 0xe0]
mov dword [rsp + 0x1b0], eax
lea rdx, [0x10007e9f8]
lea rcx, [rsp + 0x1a8]
call sub.msvcrt.dll__CxxThrowException
nop
lea rdx, [rbp + 0x18]
lea rcx, [rsp + 0x20]
call fcn.10001ecdc
xor eax, eax
mov rcx, r13
lea rdx, [0x100014860]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea edi, [rax + 1]
sub rcx, rdi
mov r8d, ecx
lea rcx, [rsp + 0x20]
call fcn.10001fa30
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0xc0]
mov rcx, qword [rsp + 0x280]
call fcn.10004be1c
nop
mov rsi, qword [rax]
cmp rsi, r12
je 0x1000625c0
lock add dword [rsi + 8], edi
mov qword [rsp + 0x28], rsi
mov eax, r13d
lock xadd dword [rbp + 8], eax
add eax, r13d
jne 0x1000625de
mov rax, qword [rbp]
mov edx, edi
mov rcx, rbp
call qword [rax]
nop
mov rcx, qword [rsp + 0xc0]
cmp rcx, r12
je 0x10006260c
mov eax, r13d
lock xadd dword [rcx + 8], eax
add eax, r13d
jne 0x100062604
cmp rcx, r12
je 0x100062604
mov rax, qword [rcx]
mov edx, edi
call qword [rax]
mov qword [rsp + 0xc0], r12
cmp rsi, r12
jne 0x100062679
lea rcx, [rsp + 0x20]
call fcn.10001fba0
nop
mov eax, r13d
lock xadd dword [rbx + 8], eax
add eax, r13d
jne 0x100062633
mov rax, qword [rbx]
mov edx, edi
mov rcx, rbx
call qword [rax]
mov qword [rsp + 0x288], r12
mov rax, qword [rsp + 0x280]
cmp rax, r12
je 0x10006266c
mov ecx, r13d
lock xadd dword [rax + 8], ecx
add ecx, r13d
jne 0x100062664
mov rcx, qword [rsp + 0x280]
mov rax, qword [rcx]
mov edx, edi
call qword [rax]
mov qword [rsp + 0x280], r12
mov rcx, r14
call fcn.10001fba0
jmp 0x1000629c4
lea rdx, [0x100014888]
lea rcx, [rsp + 0x58]
call fcn.10001ff98
nop
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0xa8]
mov rcx, rsi
call fcn.10004c9f8
nop
mov rdi, qword [rax]
cmp rdi, r12
je 0x1000626b4
mov ebp, 1
lock add dword [rdi + 8], ebp
jmp 0x1000626b9
mov ebp, 1
mov qword [rsp + 0x288], rdi
mov eax, r13d
lock xadd dword [rbx + 8], eax
add eax, r13d
jne 0x1000626d9
mov rax, qword [rbx]
mov edx, ebp
mov rcx, rbx
call qword [rax]
nop
mov rcx, qword [rsp + 0xa8]
cmp rcx, r12
je 0x100062707
mov eax, r13d
lock xadd dword [rcx + 8], eax
add eax, r13d
jne 0x1000626ff
cmp rcx, r12
je 0x1000626ff
mov rax, qword [rcx]
mov edx, ebp
call qword [rax]
mov qword [rsp + 0xa8], r12
lea rcx, [rsp + 0x58]
call fcn.10001fba0
cmp rdi, r12
jne 0x10006277b
lea rcx, [rsp + 0x20]
call fcn.10001fba0
nop
mov eax, r13d
lock xadd dword [rsi + 8], eax
add eax, r13d
jne 0x100062738
mov rax, qword [rsi]
mov edx, ebp
mov rcx, rsi
call qword [rax]
mov qword [rsp + 0x28], r12
mov rax, qword [rsp + 0x280]
cmp rax, r12
je 0x10006276e
mov ecx, r13d
lock xadd dword [rax + 8], ecx
add ecx, r13d
jne 0x100062766
mov rcx, qword [rsp + 0x280]
mov rax, qword [rcx]
mov edx, ebp
call qword [rax]
mov qword [rsp + 0x280], r12
mov rcx, r14
call fcn.10001fba0
jmp 0x1000629c4
lea rcx, [rsp + 0x1d0]
call fcn.100019218
nop
mov rdi, qword [rsp + 0x288]
mov r8, rbp
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.10004d328
nop
mov rdx, qword [rsp + 0x70]
cmp dword [rdx - 0x10], r12d
je 0x1000627ba
lea rcx, [rsp + 0x1d0]
call fcn.10001f488
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.10004d21c
nop
mov rbx, qword [rax]
cmp rdi, r12
je 0x100062814
mov rcx, rdi
cmp rbx, r12
je 0x1000627dc
lock add dword [rbx + 8], ebp
mov rdi, rbx
mov qword [rsp + 0x288], rbx
cmp rcx, r12
je 0x100062828
mov eax, r13d
lock xadd dword [rcx + 8], eax
add eax, r13d
jne 0x10006280a
mov rax, qword [rcx]
mov edx, ebp
call qword [rax]
mov rdi, qword [rsp + 0x288]
jmp 0x100062828
mov rdi, qword [rsp + 0x288]
jmp 0x100062828
cmp rbx, r12
je 0x10006281d
lock add dword [rbx + 8], ebp
mov rdi, rbx
mov qword [rsp + 0x288], rbx
mov rcx, qword [rsp + 0x60]
cmp rcx, r12
je 0x100062858
mov eax, r13d
lock xadd dword [rcx + 8], eax
add eax, r13d
jne 0x10006284b
cmp rcx, r12
je 0x10006284b
mov rax, qword [rcx]
mov edx, ebp
call qword [rax]
mov qword [rsp + 0x60], r12
mov rdi, qword [rsp + 0x288]
lea rcx, [rsp + 0x70]
call fcn.10001fba0
cmp rbx, r12
jne 0x100062791
xor edx, edx
xor ecx, ecx
mov r8d, 0xe0000000
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov r13, rax
cmp rax, r12
je 0x100062962
mov ebx, r12d
mov rdi, qword [rsp + 0x1d0]
cmp rdi, r12
je 0x100062937
mov eax, r12d
cmp rdi, r12
setne al
cmp eax, r12d
je 0x100062949
mov rdx, rdi
mov rdi, qword [rdi]
add rdx, 0x10
lea rcx, [rsp + 0x40]
call fcn.10001ff10
nop
mov ebp, 1
mov r8d, 0x80000000
mov rdx, qword [rsp + 0x40]
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov r12, rax
test rax, rax
jne 0x1000628f4
lea rcx, [rsp + 0x40]
call fcn.10001fba0
cmp rdi, r12
jne 0x10006289b
jmp 0x100062937
xor ebp, ebp
lea rdx, [rsp + 0x200]
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp ebx, 0xc
jne 0x10006291e
mov dword [r15], 1
jmp 0x10006292a
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
lea rcx, [rsp + 0x40]
call fcn.10001fba0
xor r12d, r12d
add ebx, 1
cmp ebp, r12d
jne 0x100062954
cmp ebx, 0xd
jae 0x100062954
jmp 0x10006288a
mov ecx, 0x80004005
call fcn.10001fd10
int3
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ebp, 1
lea rcx, [rsp + 0x1d0]
call fcn.10001f53c
nop
lea rcx, [rsp + 0x20]
call fcn.10001fba0
nop
lock add dword [rsi + 8], 0xffffffff
jne 0x10006298c
mov rax, qword [rsi]
mov edx, ebp
mov rcx, rsi
call qword [rax]
mov qword [rsp + 0x28], r12
mov rax, qword [rsp + 0x280]
cmp rax, r12
je 0x1000629bc
lock add dword [rax + 8], 0xffffffff
jne 0x1000629b4
mov rcx, qword [rsp + 0x280]
mov rax, qword [rcx]
mov edx, ebp
call qword [rax]
mov qword [rsp + 0x280], r12
mov rcx, r14
call fcn.10001fba0
add rsp, 0x228
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret