sub_405C4B
Assembly Code of File sub_405C4B
sub_405C4B proc near ; CODE XREF: sub_40668A:loc_4066D2p
mov ecx, 420h
cmp eax, ecx
ja loc_405CFC
jz loc_405CF5
add ecx, 0FFFFFFFBh
cmp eax, ecx
ja short loc_405CBF
jz short loc_405CB5
mov ecx, eax
sub ecx, 3
jz short loc_405CAB
dec ecx
dec ecx
jz short loc_405CA1
dec ecx
jz short loc_405C97
sub ecx, 51h
jz short loc_405C8D
sub ecx, 24h
jnz loc_405D72 ; default
; jumptable 00405D19 cases 1,5,6,8,9,12,13,15,16
push offset aTheSpecifiedSe ; \"The specified service name is invalid.\"
jmp loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405C8D: ; CODE XREF: sub_405C4B + 2Dj
push offset aTheRequestedCo ; \"The requested control code is undefined\"...
jmp loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405C97: ; CODE XREF: sub_405C4B + 28j
push offset aTheHandleIsInv ; \"The handle is invalid.\"
jmp loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405CA1: ; CODE XREF: sub_405C4B + 25j
push offset aTheHandleDoesN ; \"The handle does not have the required a\"...
jmp loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405CAB: ; CODE XREF: sub_405C4B + 21j
push offset aTheServiceBina ; \"The service binary file could not be fo\"...
jmp loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405CB5: ; CODE XREF: sub_405C4B + 1Aj
push offset aTheServiceCann ; \"The service cannot be stopped because o\"...
jmp loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405CBF: ; CODE XREF: sub_405C4B + 18j
mov ecx, eax
sub ecx, 41Ch
jz short loc_405CEE
dec ecx
jz short loc_405CE7
dec ecx
jz short loc_405CE0
dec ecx
jnz loc_405D72 ; default
; jumptable 00405D19 cases 1,5,6,8,9,12,13,15,16
push offset aTheDatabaseIsL ; \"The database is locked.\"
jmp loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405CE0: ; CODE XREF: sub_405C4B + 82j
push offset aAThreadCouldNo ; \"A thread could not be created for the s\"...
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405CE7: ; CODE XREF: sub_405C4B + 7Fj
push offset aTheProcessForT ; \"The process for the service was started\"...
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405CEE: ; CODE XREF: sub_405C4B + 7Cj
push offset aTheRequested_0 ; \"The requested control code is not valid\"...
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405CF5: ; CODE XREF: sub_405C4B + Dj
push offset aAnInstanceOfTh ; \"An instance of the service is already r\"...
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405CFC: ; CODE XREF: sub_405C4B + 7j
mov ecx, 45Bh
cmp eax, ecx
ja short loc_405D72 ; default
; jumptable 00405D19 cases 1,5,6,8,9,12,13,15,16
jz short loc_405D5F
lea ecx, [ eax - 422h ]
cmp ecx, 11h ; switch 18 cases
ja short loc_405D72 ; default
; jumptable 00405D19 cases 1,5,6,8,9,12,13,15,16
movzx ecx, ds:byte_405DB3[ ecx ]
jmp ds:off_405D8B[ ecx * 4 ] ; switch jump
loc_405D20: ; DATA XREF: .text:off_405D8Bo
push offset aTheSpecifiedDa ; :arg jumptable 00405D19 case 7
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405D27: ; CODE XREF: sub_405C4B + CEj
; DATA XREF: .text:off_405D8Bo
push offset aTheServiceDepe ; :arg jumptable 00405D19 case 17
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405D2E: ; CODE XREF: sub_405C4B + CEj
; DATA XREF: .text:off_405D8Bo
push offset aTheServiceDe_0 ; :arg jumptable 00405D19 case 10
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405D35: ; CODE XREF: sub_405C4B + CEj
; DATA XREF: .text:off_405D8Bo
push offset aTheServiceHasB ; :arg jumptable 00405D19 case 0
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405D3C: ; CODE XREF: sub_405C4B + CEj
; DATA XREF: .text:off_405D8Bo
push offset aTheSpecified_0 ; :arg jumptable 00405D19 case 2
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405D43: ; CODE XREF: sub_405C4B + CEj
; DATA XREF: .text:off_405D8Bo
push offset aTheServiceCoul ; :arg jumptable 00405D19 case 11
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405D4A: ; CODE XREF: sub_405C4B + CEj
; DATA XREF: .text:off_405D8Bo
push offset aTheServiceHa_0 ; :arg jumptable 00405D19 case 14
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405D51: ; CODE XREF: sub_405C4B + CEj
; DATA XREF: .text:off_405D8Bo
push offset aTheRequested_1 ; :arg jumptable 00405D19 case 3
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405D58: ; CODE XREF: sub_405C4B + CEj
; DATA XREF: .text:off_405D8Bo
push offset aTheServiceHasN ; :arg jumptable 00405D19 case 4
jmp short loc_405D64
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405D5F: ; CODE XREF: sub_405C4B + BAj
push offset aTheSystemIsShu ; \"The system is shutting down.\"
loc_405D64: ; CODE XREF: sub_405C4B + 3Dj
; sub_405C4B + 47j ...
push offset dword_433860
call sub_412BB5
pop ecx
pop ecx
jmp short loc_405D85
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loc_405D72: ; CODE XREF: sub_405C4B + 32j
; sub_405C4B + 85j ...
push eax ; :arg default
; jumptable 00405D19 cases 1,5,6,8,9,12,13,15,16
push offset aAnUnknownErr_0 ; \"An unknown error occurred: <%ld>\"
push offset dword_433860
call sub_412BB5
add esp, 0Ch
loc_405D85: ; CODE XREF: sub_405C4B + 125j
mov eax, offset dword_433860
retn
sub_405C4B endp