Function at 0x570668
Capabilities:
Query service configuration
Query service status

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb0
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405270
xor eax, eax
push ebp
push 0x570a10
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0xc], 0xffffffff
push 0x80000004
push 0
push 0
call sub.advapi32.dll_OpenSCManagerA
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x5709ed
xor eax, eax
push ebp
push 0x5709e6
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x80000000
mov eax, dword [ebp - 4]
call fcn.00405280
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_OpenServiceA
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x5706ef
call fcn.004047c0
jmp 0x5709ed
xor eax, eax
push ebp
push 0x5709c8
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_QueryServiceStatus
test eax, eax
jne 0x570724
mov ecx, 0x570a28
mov dl, 1
mov eax, dword [0x408dbc]
call fcn.0040e688
call fcn.00404714
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x40]
cmp eax, 7
ja case.0x570736.0
jmp dword [eax*4 + 0x57073d]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x1c
mov edx, 0x570a48
call fcn.00404e14
jmp 0x57080e
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x1c
mov edx, 0x570a5c
call fcn.00404e14
jmp 0x57080e
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x1c
mov edx, 0x570a70
call fcn.00404e14
jmp 0x57080e
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x1c
mov edx, 0x570a80
call fcn.00404e14
jmp 0x57080e
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x1c
mov edx, 0x570a90
call fcn.00404e14
jmp 0x57080e
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x1c
mov edx, 0x570aa4
call fcn.00404e14
jmp 0x57080e
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x1c
mov edx, 0x570ab8
call fcn.00404e14
jmp 0x57080e
mov eax, dword [ebp - 0x40]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x48]
call fcn.0040a5c4
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x1c
call fcn.00404e14
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_QueryServiceConfigA
mov eax, dword [ebp - 0x20]
call fcn.00409adc
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_QueryServiceConfigA
test eax, eax
je 0x5709b1
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
dec eax
je 0x570899
dec eax
je 0x570885
sub eax, 0xe
je 0x5708ad
sub eax, 0x10
je 0x5708c1
jmp 0x5708d3
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x18
mov edx, 0x570ac8
call fcn.00404e14
jmp 0x5708d3
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x18
mov edx, 0x570ae4
call fcn.00404e14
jmp 0x5708d3
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x18
mov edx, 0x570afc
call fcn.00404e14
jmp 0x5708d3
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x18
mov edx, 0x570b18
call fcn.00404e14
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
cmp eax, 4
ja case.default.0x5708de
jmp dword [eax*4 + 0x5708e5]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x14
mov edx, 0x570b34
call fcn.00404e14
jmp case.default.0x5708de
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x14
mov edx, 0x570b44
call fcn.00404e14
jmp case.default.0x5708de
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x14
mov edx, 0x570b54
call fcn.00404e14
jmp case.default.0x5708de
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x14
mov edx, 0x570b64
call fcn.00404e14
jmp case.default.0x5708de
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x14
mov edx, 0x570b74
call fcn.00404e14
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0xc
mov edx, dword [ebp - 0x28]
mov edx, dword [edx + 0xc]
call fcn.00404fb8
lea eax, [ebp - 0x50]
mov edx, dword [ebp - 0x28]
mov edx, dword [edx + 0xc]
call fcn.00404fb8
mov eax, dword [ebp - 0x50]
lea edx, [ebp - 0x4c]
call fcn.00569544
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x10
call fcn.00404e14
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov eax, dword [eax + 8]
call fcn.00570620
and eax, 0xff
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov dword [edx + 0x24], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5709cf
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_CloseServiceHandle
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x570a17
lea eax, [ebp - 0x50]
mov edx, 3
call fcn.00404de4
lea eax, [ebp - 4]
call fcn.00404dc0
ret