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