Function at 0x4368f0
Capabilities:
Check for time delay via gettickcount
Query service status
Stop service

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x459fc0
push 0x43d160
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x45d2b0]
xor dword [ebp - 8], eax
xor eax, ebp
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
test edi, edi
je 0x436a1a
cmp byte [edi], 0
je 0x436a1a
push edi
push str.RsStopService__s_
push 0x80
call fcn.004025a0
add esp, 0xc
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov ebx, eax
test ebx, ebx
jne 0x436983
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.OpenSCManager_Failed__Err_Code:__d
push 4
call fcn.004025a0
add esp, 0xc
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xf01ff
push edi
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov esi, eax
xor eax, eax
cmp esi, eax
jne 0x4369ca
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str.OpenService__s__Failed__Err_Code:__d
push 4
call fcn.004025a0
add esp, 0x10
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x38]
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x436a2e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str.QueryServiceStatus__s__Failed__Err_Code:__d
push 4
call fcn.004025a0
add esp, 0x10
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push ebx
call esi
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x34]
cmp eax, 1
jne 0x436a6c
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push ebx
call esi
push edi
push str.Service__s_is_Stopped...
push 0x80
call fcn.004025a0
add esp, 0xc
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 3
jne 0x436abd
push edi
push str._ss_Stop_is_Pending...
push 0x80
call fcn.004025a0
add esp, 0xc
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
lea edx, [ebp - 0x38]
push edx
push esi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x4369f7
cmp dword [ebp - 0x34], 1
je 0x436ae0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x1c]
cmp eax, 0x2710
ja 0x436b16
cmp dword [ebp - 0x34], 3
je 0x436a71
lea eax, [ebp - 0x38]
push eax
push 1
push esi
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
jne 0x436b2b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str.ControlService__s__SERVICE_CONTROL_STOP_Failed__Err_Code:__d
jmp 0x436a04
push edi
push str.Service__s_is_Stopped...
push 0x80
call fcn.004025a0
add esp, 0xc
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push ebx
call esi
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push str.Wait_for_Service__s_Time_Out_
push 4
call fcn.004025a0
add esp, 0xc
jmp 0x436a0e
cmp dword [ebp - 0x34], 1
je 0x436ae0
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
lea edx, [ebp - 0x38]
push edx
push esi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x4369f7
cmp dword [ebp - 0x34], 1
je 0x436b6f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x1c]
cmp eax, 0x2710
ja 0x436b16
cmp dword [ebp - 0x34], 1
jne 0x436b31
jmp 0x436a55
push edi
push str.Service__s_is_Stopped...
push 0x80
call fcn.004025a0
add esp, 0xc
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push ebx
call esi
jmp 0x436a55