Function at 0x403c60
Capabilities:
Query service status
Stop service

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x450520
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x45e024]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 4
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov ebx, eax
test ebx, ebx
je 0x4041d1
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x403cad
mov eax, dword [esi]
push 0xf01ff
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov edi, eax
test edi, edi
jne 0x403d7b
push esi
mov edx, 0x459ca4
lea ecx, [ebp - 0x40]
call fcn.0040a3a0
add esp, 4
push str.__was_not_registered_as_a_NT_Service
mov edx, eax
mov dword [ebp - 4], edi
lea ecx, [ebp - 0x28]
call fcn.0040a4f0
add esp, 4
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.00401ca0
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x403d29
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403d1f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4041ef
push edx
push ecx
call fcn.004120fb
add esp, 8
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
cmp edx, 0x10
jb 0x403d6f
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403d65
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4041f4
push edx
push ecx
call fcn.004120fb
add esp, 8
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x4041d1
lea eax, [ebp - 0x5c]
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x403dec
push 0x20
push str.__failed_to_query_service_status
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
call fcn.00409910
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 2
call fcn.00401ca0
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x4041c5
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4041bb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4041f9
jmp 0x4041bb
cmp dword [ebp - 0x58], 1
lea ecx, [ebp - 0x40]
push esi
jne 0x403eb8
mov edx, 0x459ce4
call fcn.0040a3a0
add esp, 4
push str._has_already_stopped
mov edx, eax
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x28]
call fcn.0040a4f0
add esp, 4
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00401ca0
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x403e5f
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403e55
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4041fe
push edx
push ecx
call fcn.004120fb
add esp, 8
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
cmp edx, 0x10
jb 0x403ea5
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403e9b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404203
push edx
push ecx
call fcn.004120fb
add esp, 8
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push edi
call esi
push ebx
call esi
mov al, 1
jmp 0x4041d3
mov edx, str.__stopping_:
call fcn.0040a3a0
add esp, 4
mov ecx, eax
mov dword [ebp - 4], 5
call fcn.00401ca0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x403f0e
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403f04
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404208
push edx
push ecx
call fcn.004120fb
add esp, 8
lea eax, [ebp - 0x5c]
push eax
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
jne 0x403f75
push esi
mov edx, str.__Failed_to_stop:
lea ecx, [ebp - 0x40]
call fcn.0040a3a0
add esp, 4
mov ecx, eax
mov dword [ebp - 4], 6
call fcn.00401ca0
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x4041c5
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4041bb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40420d
jmp 0x4041bb
push 0x1e
push str.__waiting_for_the_state_change
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00409910
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 7
call fcn.00401ca0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x403fe0
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403fd6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404212
push edx
push ecx
call fcn.004120fb
add esp, 8
xor esi, esi
lea eax, [ebp - 0x5c]
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x404165
cmp dword [ebp - 0x58], 1
je 0x4040e6
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 3
push 0x459d84
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00409910
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xa
call fcn.00401ca0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x404075
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40406b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4041ef
push edx
push ecx
call fcn.004120fb
add esp, 8
inc esi
cmp esi, 0x1e
jl 0x403fe2
push 0x1c
push str.__Failed_to_stop_the_service
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00409910
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xb
call fcn.00401ca0
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x4041c5
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4041bb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404217
jmp 0x4041bb
push 0xa
push str.__stopped.
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00409910
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 9
call fcn.00401ca0
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x40414a
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x404140
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40421c
push edx
push ecx
call fcn.004120fb
add esp, 8
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push edi
call esi
push ebx
call esi
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov al, 1
jmp 0x4041d3
push 0x44
push str.__failed_to_query_service_status_while_waiting_for_the_status_change
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00409910
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 8
call fcn.00401ca0
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x4041c5
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4041bb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404221
push edx
push ecx
call fcn.004120fb
add esp, 8
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push edi
call esi
push ebx
call esi
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00411cb8
mov esp, ebp
pop ebp
ret
call fcn.0041c6cd
call fcn.0041c6cd
call fcn.0041c6cd
call fcn.0041c6cd
call fcn.0041c6cd
call fcn.0041c6cd
call fcn.0041c6cd
call fcn.0041c6cd
call fcn.0041c6cd
call fcn.0041c6cd
call fcn.0041c6cd
int3