Function at 0x1003d34
Capabilities:
Query service status

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x68
mov eax, dword [0x1006074]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
xor esi, esi
push esi
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x4c], edi
call dword [sym.imp.IISUTIL.dll_public:_void___thiscall_BUFFER::constructor_unsigned_int_]
push 1
push esi
push esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x3c], 0x3e8
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0x48], eax
cmp eax, esi
jne 0x1003d96
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, esi
jg 0x1003d8a
mov dword [ebp - 0x34], eax
jmp 0x1003f08
and eax, 0xffff
or eax, 0x80070000
jmp 0x1003d82
push eax
mov ecx, edi
call fcn.01003c9f
cmp eax, esi
mov dword [ebp - 0x34], eax
jl 0x1003eff
add edi, 4
mov eax, dword [edi]
shl eax, 2
cmp eax, dword [ebp - 0xc]
jbe 0x1003dd0
push eax
lea ecx, [ebp - 0x30]
call dword [sym.imp.IISUTIL.dll_private:_int___thiscall_BUFFER::ReallocStorage_unsigned_int_]
cmp eax, esi
jne 0x1003dd0
mov dword [ebp - 0x34], 0x80070008
jmp 0x1003eff
mov ecx, dword [edi]
mov eax, dword [ebp - 0x10]
shl ecx, 2
push ecx
push esi
push eax
mov dword [ebp - 0x38], eax
call sub.msvcrt.dll_memset
mov esi, dword [edi]
add esp, 0xc
jmp 0x1003e20
lea eax, [ebp - 0x44]
push eax
push esi
mov ecx, edi
call fcn.01004a9f
mov dword [ebp - 0x34], eax
test eax, eax
jl 0x1003edc
push 0xf01ff
push dword [ebp - 0x44]
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov ecx, dword [ebp - 0x38]
mov dword [ecx + esi*4], eax
test eax, eax
je 0x1003ec9
dec esi
jns 0x1003dea
mov eax, dword [edi]
test eax, eax
je 0x1003edc
and dword [ebp - 0x40], 0
lea esi, [eax - 1]
test esi, esi
jl 0x1003e9e
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x1003e9b
lea ecx, [ebp - 0x68]
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x1003ec9
cmp dword [ebp - 0x64], 1
jne 0x1003e6b
inc dword [ebp - 0x40]
jmp 0x1003e9b
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x34], eax
jmp 0x1003edc
cmp dword [ebp - 0x64], 3
je 0x1003e9b
mov eax, dword [ebp - 0x38]
push ebx
push 1
push dword [eax + esi*4]
call fcn.0100398c
mov dword [ebp - 0x34], eax
cmp eax, 0x8007041d
jne 0x1003e90
mov ecx, dword [ebp - 0x38]
and dword [ecx + esi*4], 0
test eax, eax
jge 0x1003e9b
cmp eax, 0x8007041b
jne 0x1003edc
dec esi
jns 0x1003e38
mov eax, dword [ebx]
cmp eax, dword [ebp - 0x3c]
jae 0x1003eac
test eax, eax
je 0x1003eac
mov dword [ebp - 0x3c], eax
mov esi, dword [ebp - 0x3c]
cmp esi, eax
ja 0x1003ed5
push esi
call dword [sym.imp.KERNEL32.dll_Sleep]
sub dword [ebx], esi
mov eax, dword [edi]
cmp dword [ebp - 0x40], eax
jne 0x1003e2d
jmp 0x1003edc
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x1003e5c
jmp 0x1003e66
mov dword [ebp - 0x34], 0x8007041d
cmp dword [ebp - 0x38], 0
je 0x1003eff
mov esi, dword [edi]
jmp 0x1003efc
mov eax, dword [ebp - 0x38]
lea edi, [eax + esi*4]
mov eax, dword [edi]
test eax, eax
je 0x1003efc
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
and dword [edi], 0
dec esi
jns 0x1003ee6
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ecx, dword [ebp - 0x4c]
call fcn.01003838
test byte [ebp - 8], 1
pop edi
pop esi
pop ebx
je 0x1003f22
lea ecx, [ebp - 0x30]
call dword [sym.imp.IISUTIL.dll_public:_void___thiscall_BUFFER::FreeMemory_void_]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x34]
xor ecx, ebp
call fcn.010033bb
leave
ret 4