Function at 0xd9ca8
Capabilities:
Query service configuration

Disassembly:
push ebp
mov ebp, esp
mov ecx, 9
push 0
push 0
dec ecx
jne 0xd9cb0
push ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0xd9f9d
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 8], 0
jne 0xd9cec
lea edx, [ebp - 0x24]
mov eax, 0xd9fac
call fcn.0007a2b0
mov eax, dword [ebp - 0x24]
call fcn.000d90ec
jmp 0xd9f82
lea edx, [ebp - 0x28]
mov eax, 0xd9fbc
call fcn.0007a2b0
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.0007b240
mov edx, dword [ebp - 0x2c]
pop eax
call fcn.00013f00
mov eax, dword [ebp - 0x28]
call fcn.000d90c4
xor eax, eax
mov dword [ebp - 0x10], eax
push 0
call sub.kernel32.dll_SetLastError
xor eax, eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x18]
mov edx, 0x5000
call fcn.000763a0
xor eax, eax
push ebp
push 0xd9f59
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x20], eax
xor eax, eax
push ebp
push 0xd9ecb
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xf003f
push 0
push 0
call sub.advapi32.dll_OpenSCManagerA
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0xd9d76
push 0
call sub.kernel32.dll_SetLastError
call fcn.000d905c
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x20], 0
je 0xd9e9e
lea edx, [ebp - 0x30]
mov eax, 0xd9fe0
call fcn.0007a2b0
mov eax, dword [ebp - 0x30]
call fcn.000d90c4
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0xd9e89
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xf01ff
mov eax, dword [ebp - 4]
call fcn.000140bc
push eax
mov eax, dword [ebp - 0x20]
push eax
call sub.advapi32.dll_OpenServiceA
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0xd9dd7
push 0
call sub.kernel32.dll_SetLastError
cmp dword [ebp - 0x1c], 0
jne 0xd9de5
call fcn.000d905c
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x14], 0
je 0xd9e5c
lea eax, [ebp - 0x10]
push eax
push 0xa
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_QueryServiceConfigA
test eax, eax
jne 0xd9e4e
call sub.kernel32.dll_GetLastError_1
cmp eax, 0x7a
jne 0xd9e4e
lea edx, [ebp - 0x34]
mov eax, 0xd9ff8
call fcn.0007a2b0
mov eax, dword [ebp - 0x34]
call fcn.000d90c4
add dword [ebp - 0x10], 0x64
cmp dword [ebp - 0x10], 0x5000
ja 0xd9e4e
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x10]
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 0xd9e4e
push 0
call sub.kernel32.dll_SetLastError
cmp dword [ebp - 0x1c], 0
jne 0xd9e5c
call fcn.000d905c
mov dword [ebp - 0x1c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xd9e90
cmp dword [ebp - 0x14], 0
je 0xd9e83
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_CloseServiceHandle
test eax, eax
je 0xd9e83
push 0
call sub.kernel32.dll_SetLastError
xor eax, eax
mov dword [ebp - 0x14], eax
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xd9ed2
cmp dword [ebp - 0x20], 0
je 0xd9ec5
mov eax, dword [ebp - 0x20]
push eax
call sub.advapi32.dll_CloseServiceHandle
test eax, eax
je 0xd9ec5
push 0
call sub.kernel32.dll_SetLastError
xor eax, eax
mov dword [ebp - 0x20], eax
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xd9fa4
lea eax, [ebp - 0x4c]
mov edx, 0xb
call fcn.00013c9c
ret