Function at 0x41a1c0
Capabilities:
Query service status

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb0
mov eax, dword [0x42f040]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
push ebx
push esi
push edi
mov dword [ebp - 0x48], eax
mov ebx, edx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x3c], ebx
push eax
push 0x24
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x4c], ecx
push eax
push 0
push ecx
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0xc], 0
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 0x30], 0
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
jne 0x41a25c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push str.query_error:__d
push str.service_func
call fcn.00401ea0
add esp, 0xc
test esi, esi
je 0x41a25c
push esi
push str.get_status:__d
push str.service_func
call fcn.00401ea0
add esp, 0xc
mov eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0041bed2
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
call dword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
cmp ebx, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], edx
jne 0x41a4af
mov esi, dword [ebp + 0xc]
mov eax, 0xcccccccd
mul dword [ebp - 0x14]
mov edi, dword [ebp + 0x10]
mov ecx, 0x3e8
mov ebx, edx
mov dword [ebp - 0x6c], esi
shr ebx, 3
cmp ebx, ecx
mov dword [ebp - 0x68], edi
cmovb ebx, ecx
call dword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
mov dword [ebp - 0x58], edx
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x60], edx
lea edx, [ebp - 0x54]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x5c], eax
call fcn.00416270
test al, al
jg 0x41a499
lea eax, [ebp - 0x64]
push eax
lea edx, [ebp - 0x6c]
lea ecx, [ebp - 0xa4]
call fcn.004161d0
add esp, 4
push 0
push 0x2710
push dword [eax + 4]
push dword [eax]
call fcn.0041d010
test eax, eax
je 0x41a499
cmp eax, ebx
cmovb ebx, eax
mov eax, dword [ebp - 0x48]
push ebx
test eax, eax
je 0x41a324
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x41a32a
mov eax, 5
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0041bed2
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov ebx, dword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
call ebx
mov dword [ebp - 0x78], edx
lea ecx, [ebp - 0x7c]
lea edx, [ebp - 0x74]
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x7c], eax
call fcn.00416270
test al, al
jg 0x41a499
lea eax, [ebp - 0x40]
mov dword [ebp - 0xc], 0
push eax
push 0x24
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x40], 0
push eax
push 0
push dword [ebp - 0x4c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x2c], xmm0
movups xmmword [ebp - 0x1c], xmm0
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
jne 0x41a3ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push str.query_error:__d
push str.service_func
call fcn.00401ea0
add esp, 0xc
test esi, esi
jne 0x41a233
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x18], eax
jbe 0x41a3cd
call ebx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], edx
jmp 0x41a271
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x30]
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x90], edi
call ebx
mov dword [ebp - 0x88], edx
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x98], edx
lea edx, [ebp - 0x84]
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x8c], eax
call fcn.00416270
test al, al
jns 0x41a427
xorps xmm0, xmm0
movlpd qword [ebp - 0x44], xmm0
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
jmp 0x41a453
lea eax, [ebp - 0x94]
push eax
lea edx, [ebp - 0x9c]
lea ecx, [ebp - 0xac]
call fcn.004161d0
add esp, 4
push 0
push 0x2710
push dword [eax + 4]
push dword [eax]
call fcn.0041d010
test edx, edx
jg 0x41a469
jl 0x41a45e
cmp eax, dword [ebp - 0x14]
ja 0x41a469
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x28]
jmp 0x41a271
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x28]
jne 0x41a4af
push str.state_did_not_change
push str.service_func
call fcn.00401ea0
add esp, 8
mov eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0041bed2
mov esp, ebp
pop ebp
ret
mov eax, 3
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0041bed2
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 8]
mov eax, 6
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041bed2
mov esp, ebp
pop ebp
ret