Function at 0x41d7e9
Capabilities:
Continue service
Modify service
Query service status
Stop service

Disassembly:
push 0xd18
mov eax, 0x48f348
call fcn.00458f67
mov edi, ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [edi + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0xc68], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xc70], esi
mov dword [ebp - 0xc74], eax
test ecx, ecx
je 0x41d83b
cmp dword [0x4c12e0], 0
je 0x41d83b
cmp dword [0x4c3630], 0
je 0x41d83b
mov eax, dword [ecx]
push str.In_CInfFile::_HandleRegisterService__
push ecx
call dword [eax + 0x10]
pop ecx
pop ecx
lea ecx, [ebp - 0xd24]
call fcn.00413a6f
xor ebx, ebx
lea ecx, [ebp - 0xd24]
mov dword [ebp - 4], ebx
call fcn.0041543e
mov eax, dword [ebp - 0xc68]
test eax, eax
je 0x41e4c7
cmp byte [eax], bl
je 0x41e4c7
test esi, esi
je 0x41e4c7
cmp byte [esi], bl
je 0x41e4c7
cmp dword [ebp - 0xc74], ebx
je 0x41e4c7
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41d8b1
cmp dword [0x4c12e0], ebx
je 0x41d8b1
cmp dword [0x4c3630], ebx
je 0x41d8b1
push dword [ebp + 0x10]
mov eax, dword [ecx]
push esi
push str...Trying_to__un_register_service__s._Install_type:__d
push ecx
call dword [eax + 0x10]
add esp, 0x10
push 0x828
lea eax, [ebp - 0xc64]
mov esi, ebx
push ebx
push eax
mov dword [ebp - 0xc78], esi
call fcn.0045b1d0
mov edx, dword [ebp - 0xc74]
add esp, 0xc
cmp dword [edx + 0xc], ebx
jne 0x41d968
push edx
lea eax, [ebp - 0xc64]
mov ecx, edi
push eax
mov eax, dword [ebp - 0xc68]
push eax
call fcn.0042116c
mov esi, eax
mov dword [ebp - 0xc78], esi
test esi, esi
je 0x41d962
mov edx, dword [edi + 0xc]
mov ecx, edx
test edx, edx
je 0x41d92d
mov eax, dword [0x4c12e0]
test eax, eax
je 0x41e4e6
mov eax, dword [edx]
push esi
push dword [ebp - 0xc70]
push str...Error_parsing_service_parameters_for_service__s._Error:__d
push edx
call dword [eax + 0x14]
mov ecx, dword [edi + 0xc]
add esp, 0x10
test ecx, ecx
je 0x41e4e6
mov eax, dword [0x4c12e0]
test eax, eax
je 0x41e4e6
cmp dword [0x4c3630], ebx
je 0x41e4e6
mov eax, dword [ecx]
push esi
push str.CInfFile::_HandleRegisterService___returns__d
push ecx
call dword [eax + 0x10]
add esp, 0xc
jmp 0x41e4e6
mov edx, dword [ebp - 0xc74]
test byte [ebp + 0x10], 1
je 0x41e1a3
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xc80], eax
test eax, eax
jne 0x41dfe3
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41d9a7
cmp dword [0x4c12e0], ebx
je 0x41d9a7
cmp dword [0x4c3630], ebx
je 0x41d9a7
mov eax, dword [ecx]
push str...Creating_Service...
push ecx
call dword [eax + 0x10]
pop ecx
pop ecx
cmp dword [ebp - 0xd08], ebx
je 0x41dfaa
cmp dword [ebp - 0xcf8], ebx
je 0x41d9d0
push 0xf003f
push ebx
push ebx
call dword [ebp - 0xcf8]
mov dword [ebp - 0xc6c], eax
jmp 0x41d9d8
mov eax, ebx
mov dword [ebp - 0xc6c], ebx
test eax, eax
je 0x41dfaa
mov esi, dword [ebp - 0xc70]
mov ecx, edi
push esi
call fcn.0041c29f
mov dword [ebp - 0xc70], eax
test eax, eax
jne 0x41dac1
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41da1a
cmp dword [0x4c12e0], ebx
je 0x41da1a
mov eax, dword [ecx]
push esi
push str...Warning._Could_not_find__s_in_the_list_of_files_copied_through_this_inf._Checking_if_the_file_exists
push ecx
call dword [eax + 0x18]
add esp, 0xc
push ebx
push esi
call fcn.0044261e
pop ecx
pop ecx
mov ecx, dword [edi + 0xc]
test eax, eax
jne 0x41da83
test ecx, ecx
je 0x41da4d
cmp dword [0x4c12e0], ebx
je 0x41da4d
cmp dword [0x4c3630], ebx
je 0x41da4d
mov eax, dword [ecx]
push esi
push str...File__s_exists._Using_it_to_create_the_service
push ecx
call dword [eax + 0x10]
add esp, 0xc
push esi
call fcn.00465f76
mov esi, eax
mov dword [ebp - 0xc70], esi
pop ecx
test esi, esi
jne 0x41dac7
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41da7c
cmp dword [0x4c12e0], ebx
je 0x41da7c
mov eax, dword [ecx]
push str.FATAL._Not_enough_memory
push ecx
call dword [eax + 0x1c]
pop ecx
pop ecx
push 8
jmp 0x41e4e5
test ecx, ecx
je 0x41da9e
cmp dword [0x4c12e0], ebx
je 0x41da9e
mov eax, dword [ecx]
push esi
push str.File__s_does_not_exist._Not_creating_the_service
push ecx
call dword [eax + 0x14]
add esp, 0xc
cmp dword [ebp - 0xd08], ebx
je 0x41daba
cmp dword [ebp - 0xcf4], ebx
je 0x41daba
push dword [ebp - 0xc6c]
call dword [ebp - 0xcf4]
push 2
jmp 0x41e4e5
mov esi, dword [ebp - 0xc70]
push 0x208
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.0045b1d0
add esp, 0xc
cmp dword [ebp + 0x18], ebx
je 0x41db98
push 0x208
lea eax, [ebp - 0x420]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetLongPathNameA]
test eax, eax
jne 0x41db2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [edi + 0xc]
test edx, edx
je 0x41dc42
cmp dword [0x4c12e0], ebx
je 0x41dc42
mov ecx, dword [edx]
push eax
push str...Unable_to_get_long_path.__Error:__d
push edx
call dword [ecx + 0x18]
jmp 0x41dc3f
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41db56
cmp dword [0x4c12e0], ebx
je 0x41db56
cmp dword [0x4c3630], ebx
je 0x41db56
mov eax, dword [ecx]
lea edx, [ebp - 0x420]
push edx
push str...Got_long_path:__s
push ecx
call dword [eax + 0x10]
add esp, 0xc
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push str.__s_
push eax
call fcn.004134fa
add esp, 0xc
cmp eax, 0xffffffff
jne 0x41dc42
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41dc42
cmp dword [0x4c12e0], ebx
je 0x41dc42
push str...Unable_to_process_long_path.
jmp 0x41dbd2
lea eax, [ebp - 0x218]
cmp byte [0x4c3708], bl
je 0x41dbdc
push esi
push str.__s_
push eax
call fcn.004134fa
add esp, 0xc
cmp eax, 0xffffffff
jne 0x41dc42
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41dc42
cmp dword [0x4c12e0], ebx
je 0x41dc42
push str...Unable_to_process_temp_path.
mov eax, dword [ecx]
push ecx
call dword [eax + 0x18]
pop ecx
pop ecx
jmp 0x41dc42
push 0x208
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0xc7c], ecx
test ecx, ecx
je 0x41dc42
test eax, eax
jne 0x41dc23
cmp dword [0x4c12e0], ebx
je 0x41dc42
mov eax, dword [ecx]
mov esi, dword [eax + 0x18]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str...Unable_to_get_short_path.__Error:__d
push dword [ebp - 0xc7c]
call esi
mov esi, dword [ebp - 0xc70]
jmp 0x41dc3f
cmp dword [0x4c12e0], ebx
je 0x41dc42
cmp dword [0x4c3630], ebx
je 0x41dc42
mov eax, dword [ecx]
push esi
push str...Got_short_path:__s
push ecx
call dword [eax + 0x10]
add esp, 0xc
cmp byte [ebp - 0x218], bl
je 0x41dc6c
push esi
call fcn.0045f1d9
lea eax, [ebp - 0x218]
push eax
call fcn.00465f76
mov dword [ebp - 0xc70], eax
pop ecx
pop ecx
test eax, eax
je 0x41da60
mov esi, dword [ebp - 0xc6c]
push esi
call dword [sym.imp.ADVAPI32.dll_LockServiceDatabase]
mov dword [ebp - 0xc80], eax
cmp dword [ebp - 0xd08], ebx
je 0x41dcaa
cmp dword [ebp - 0xcec], ebx
je 0x41dcaa
push 0xf01ff
lea eax, [ebp - 0xc64]
push eax
push esi
call dword [ebp - 0xcec]
mov dword [ebp - 0xc68], eax
jmp 0x41dcb0
mov dword [ebp - 0xc68], ebx
mov eax, dword [edi + 0xc]
mov ecx, eax
mov dword [ebp - 0xc7c], eax
test eax, eax
je 0x41dcf5
cmp dword [0x4c12e0], ebx
je 0x41dcf5
cmp dword [0x4c3630], ebx
je 0x41dcf5
mov eax, dword [eax]
mov esi, dword [eax + 0x10]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0xc64]
push eax
push str...Tried_to_open_service_named:__s.__Last_Error_Code_is__d.
push dword [ebp - 0xc7c]
call esi
mov ecx, dword [edi + 0xc]
add esp, 0x10
mov esi, dword [ebp - 0xc68]
test esi, esi
je 0x41ddd4
test ecx, ecx
je 0x41dd1c
cmp dword [0x4c12e0], ebx
je 0x41dd1c
mov eax, dword [ecx]
push str...The_service_already_exists__try_to_change_its_configuration
push ecx
call dword [eax + 0x18]
pop ecx
pop ecx
xor ecx, ecx
lea eax, [ebp - 0xb63]
cmp byte [ebp - 0x644], cl
push eax
push ebx
lea eax, [ebp - 0x644]
cmove eax, ecx
push eax
lea eax, [ebp - 0x84c]
push eax
push ebx
lea eax, [ebp - 0xa54]
push eax
push dword [ebp - 0xc70]
push 0xffffffffffffffff
push dword [ebp - 0xa58]
push dword [ebp - 0xa5c]
push esi
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigA]
cmp eax, 1
jne 0x41dda5
mov eax, dword [ebp - 0xc74]
cmp dword [eax + 0xc], ebx
jne 0x41dda5
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41de8c
cmp dword [0x4c12e0], ebx
je 0x41de8c
cmp dword [0x4c3630], ebx
je 0x41de8c
mov eax, dword [ecx]
push str...The_service_configuration_has_been_successfully_changed
push ecx
call dword [eax + 0x10]
pop ecx
pop ecx
jmp 0x41de8c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [edi + 0xc]
test edx, edx
je 0x41de8c
cmp dword [0x4c12e0], ebx
je 0x41de8c
push eax
lea eax, [ebp - 0xc64]
push eax
push str...There_was_an_error_changing_the_service_configuration_for_service__s._Error:__d
jmp 0x41de83
test ecx, ecx
je 0x41dded
cmp dword [0x4c12e0], ebx
je 0x41dded
mov eax, dword [ecx]
push str...The_service_doesnt_exist__try_to_create_it
push ecx
call dword [eax + 0x18]
pop ecx
pop ecx
xor ecx, ecx
lea eax, [ebp - 0x644]
cmp byte [ebp - 0x644], cl
cmove eax, ecx
cmp dword [ebp - 0xd08], ecx
je 0x41de5f
cmp dword [ebp - 0xcf0], ecx
je 0x41de57
push ebx
push eax
lea eax, [ebp - 0x84c]
push eax
push ebx
lea eax, [ebp - 0xa54]
push eax
push dword [ebp - 0xc70]
lea eax, [ebp - 0xb63]
push 1
push dword [ebp - 0xa58]
push dword [ebp - 0xa5c]
push dword [ebp - 0xa60]
push eax
lea eax, [ebp - 0xc64]
push eax
push dword [ebp - 0xc6c]
call dword [ebp - 0xcf0]
mov esi, eax
jmp 0x41de59
mov esi, ebx
test esi, esi
jne 0x41de8c
jmp 0x41de61
mov esi, ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [edi + 0xc]
test edx, edx
je 0x41de8c
cmp dword [0x4c12e0], ebx
je 0x41de8c
push eax
lea eax, [ebp - 0xc64]
push eax
push str...There_was_an_error_creating_the_service_configuration_for_service__s._Error:__d
mov ecx, dword [edx]
push edx
call dword [ecx + 0x14]
add esp, 0x10
mov eax, dword [ebp - 0xc80]
test eax, eax
je 0x41de9d
push eax
call dword [sym.imp.ADVAPI32.dll_UnlockServiceDatabase]
mov eax, dword [ebp - 0xc70]
test eax, eax
je 0x41deae
push eax
call fcn.0045f1d9
pop ecx
test esi, esi
jne 0x41df4e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [edi + 0xc]
mov esi, eax
mov dword [ebp - 0xc78], esi
test ecx, ecx
je 0x41dee9
cmp dword [0x4c12e0], ebx
je 0x41dee9
mov eax, dword [ecx]
lea edx, [ebp - 0xc64]
push esi
push edx
push str.There_was_an_error_creating_the_service__s._Error:__d
push ecx
call dword [eax + 0x14]
add esp, 0x10
cmp esi, 0x431
je 0x41def9
cmp esi, 0x436
jne 0x41df01
mov esi, ebx
mov dword [ebp - 0xc78], ebx
cmp dword [ebp - 0xd08], ebx
je 0x41df1d
cmp dword [ebp - 0xcf4], ebx
je 0x41df1d
push dword [ebp - 0xc6c]
call dword [ebp - 0xcf4]
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41df43
cmp dword [0x4c12e0], ebx
je 0x41df43
cmp dword [0x4c3630], ebx
je 0x41df43
mov eax, dword [ecx]
push esi
push str.CInfFile::_HandleRegisterService___returns__d
push ecx
call dword [eax + 0x10]
add esp, 0xc
mov esi, dword [ebp - 0xc78]
jmp 0x41e4e6
cmp dword [ebp - 0xd08], ebx
je 0x41df6b
mov ebx, dword [ebp - 0xcf4]
test ebx, ebx
je 0x41df6b
push esi
call ebx
push dword [ebp - 0xc6c]
call ebx
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41e4bf
cmp dword [0x4c12e0], 0
je 0x41e4bf
cmp dword [0x4c3630], 0
mov esi, dword [ebp - 0xc78]
je 0x41e4ea
mov eax, dword [ecx]
push esi
push str.CInfFile::_HandleRegisterService___returns__d
push ecx
call dword [eax + 0x10]
add esp, 0xc
jmp 0x41e4ea
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [edi + 0xc]
mov esi, eax
test ecx, ecx
je 0x41e4e6
cmp dword [0x4c12e0], ebx
je 0x41e4e6
mov eax, dword [ecx]
push esi
push dword [ebp - 0xc70]
push str.There_was_an_error_opening_the_service_control_manager__for_creating_service__s_._Error:__d
push ecx
call dword [eax + 0x14]
add esp, 0x10
jmp 0x41e4e6
push edx
push 1
mov ecx, edi
mov dword [edx + 0xc], ebx
call fcn.0041c836
mov dword [ebp - 0xc68], eax
mov ecx, edi
mov eax, dword [ebp - 0xc74]
push eax
push 2
call fcn.0041c836
mov ecx, dword [ebp - 0xc80]
mov dword [ebp - 0xc7c], eax
mov eax, dword [ebp - 0xc74]
mov dword [eax + 0xc], ecx
cmp dword [ebp - 0xd08], ebx
je 0x41e17c
cmp dword [ebp - 0xcf8], ebx
je 0x41e044
push 0xf003f
push ebx
push ebx
call dword [ebp - 0xcf8]
mov dword [ebp - 0xc6c], eax
jmp 0x41e04c
mov eax, ebx
mov dword [ebp - 0xc6c], ebx
test eax, eax
je 0x41e17c
push eax
call dword [sym.imp.ADVAPI32.dll_LockServiceDatabase]
mov dword [ebp - 0xc80], eax
cmp dword [ebp - 0xd08], ebx
je 0x41e0b2
cmp dword [ebp - 0xcec], ebx
je 0x41e08a
push 0xf01ff
push dword [ebp - 0xc68]
push dword [ebp - 0xc6c]
call dword [ebp - 0xcec]
mov ebx, eax
test ebx, ebx
je 0x41e0b2
push dword [ebp - 0xc70]
mov ecx, edi
push dword [ebp - 0xc7c]
push dword [ebp - 0xc74]
push ebx
call fcn.00427aa0
mov esi, eax
mov dword [ebp - 0xc78], esi
jmp 0x41e0dd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [edi + 0xc]
test edx, edx
je 0x41e0dd
cmp dword [0x4c12e0], 0
je 0x41e0dd
mov ecx, dword [edx]
push eax
push dword [ebp - 0xc68]
push str.There_was_an_error_opening_the_service__s._Error:__d._Unable_to_set_extra_parameters
push edx
call dword [ecx + 0x14]
add esp, 0x10
mov eax, dword [ebp - 0xc68]
test eax, eax
je 0x41e0ee
push eax
call fcn.0045f1d9
pop ecx
mov eax, dword [ebp - 0xc7c]
test eax, eax
je 0x41e0ff
push eax
call fcn.0045f1d9
pop ecx
mov eax, dword [ebp - 0xc80]
test eax, eax
je 0x41e110
push eax
call dword [sym.imp.ADVAPI32.dll_UnlockServiceDatabase]
test ebx, ebx
je 0x41e12d
cmp dword [ebp - 0xd08], 0
je 0x41e14b
cmp dword [ebp - 0xcf4], 0
je 0x41e12d
push ebx
call dword [ebp - 0xcf4]
cmp dword [ebp - 0xd08], 0
je 0x41e14b
cmp dword [ebp - 0xcf4], 0
je 0x41e14b
push dword [ebp - 0xc6c]
call dword [ebp - 0xcf4]
test esi, esi
je 0x41df6b
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41e4e6
cmp dword [0x4c12e0], 0
je 0x41e4e6
push esi
push str...Error_Setting_Service_Recovery_Rules._CInfFile::_HandleRegisterService___returns__d
mov eax, dword [ecx]
push ecx
call dword [eax + 0x14]
jmp 0x41d95a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [edi + 0xc]
mov esi, eax
test ecx, ecx
je 0x41e4e6
cmp dword [0x4c12e0], ebx
je 0x41e4e6
push esi
push str.There_was_an_error_opening_the_service_control_manager._Error:__d
jmp 0x41e171
test byte [ebp + 0x10], 2
je 0x41df6b
mov ecx, dword [edi + 0xc]
cmp dword [edx + 0xc], ebx
je 0x41e1d4
test ecx, ecx
je 0x41e4e8
cmp dword [0x4c12e0], ebx
je 0x41e4e8
cmp dword [0x4c3630], ebx
jmp 0x41e47d
test ecx, ecx
je 0x41e1f5
cmp dword [0x4c12e0], ebx
je 0x41e1f5
cmp dword [0x4c3630], ebx
je 0x41e1f5
mov eax, dword [ecx]
push str...Removing_the_service
push ecx
call dword [eax + 0x10]
pop ecx
pop ecx
mov eax, dword [ebp - 0xd08]
mov dword [ebp - 0xc74], eax
test eax, eax
je 0x41e490
cmp dword [ebp - 0xcf8], ebx
je 0x41e222
push 0xf003f
push ebx
push ebx
call dword [ebp - 0xcf8]
mov esi, eax
jmp 0x41e224
mov esi, ebx
test esi, esi
je 0x41e490
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41e258
cmp dword [0x4c12e0], ebx
je 0x41e258
cmp dword [0x4c3630], ebx
je 0x41e258
mov eax, dword [ecx]
lea edx, [ebp - 0xc64]
push edx
push str...Opening_Service_named:__s.__We_will_stop_and_delete_this_service.
push ecx
call dword [eax + 0x10]
add esp, 0xc
cmp dword [ebp - 0xc74], ebx
je 0x41e417
cmp dword [ebp - 0xcec], ebx
je 0x41e287
push 0x10024
lea eax, [ebp - 0xc64]
push eax
push esi
call dword [ebp - 0xcec]
mov dword [ebp - 0xc68], eax
jmp 0x41e28f
mov eax, ebx
mov dword [ebp - 0xc68], ebx
test eax, eax
je 0x41e417
lea ecx, [ebp - 0x43c]
push ecx
push 1
push eax
call dword [sym.imp.ADVAPI32.dll_ControlService]
cmp dword [ebp - 0x438], 3
mov dword [ebp - 0xc6c], esi
jne 0x41e39e
mov esi, dword [ebp - 0xc68]
mov dword [ebp - 0xc7c], 0x1e
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41e2ee
cmp dword [0x4c12e0], ebx
je 0x41e2ee
cmp dword [0x4c3630], ebx
je 0x41e2ee
mov eax, dword [ecx]
push str._Waiting_for_svc_to_stop...
push ecx
call dword [eax + 0x10]
pop ecx
pop ecx
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x1c
pop ecx
lea eax, [ebp - 0x43c]
mov byte [eax], bl
inc eax
sub ecx, 1
jne 0x41e302
lea eax, [ebp - 0x43c]
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x41e371
cmp dword [ebp - 0x438], 1
je 0x41e3f1
mov eax, dword [ebp - 0xc7c]
dec eax
mov dword [ebp - 0xc7c], eax
test eax, eax
jg 0x41e2ca
jne 0x41e3f1
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41e3f1
cmp dword [0x4c12e0], ebx
je 0x41e3f1
mov eax, dword [ecx]
lea edx, [ebp - 0xc64]
push edx
push str.Service__s_is_still_running_after_waiting_through_timeout_period_for_it_to_stop.
push ecx
call dword [eax + 0x14]
add esp, 0xc
jmp 0x41e3f1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [edi + 0xc]
test edx, edx
je 0x41e3f1
cmp dword [0x4c12e0], ebx
je 0x41e3f1
mov ecx, dword [edx]
push eax
lea eax, [ebp - 0xc64]
push eax
push str.QueryServiceStatus___error_while_waiting_for_service__s_to_stop._Error:__d
push edx
call dword [ecx + 0x14]
add esp, 0x10
jmp 0x41e3f1
mov ecx, dword [edi + 0xc]
mov ebx, dword [ebp - 0xc68]
mov dword [ebp - 0xc68], ebx
test ecx, ecx
je 0x41e3eb
cmp dword [0x4c12e0], 0
mov dword [ebp - 0xc6c], esi
mov dword [ebp - 0xc68], ebx
je 0x41e3eb
push dword [ebp - 0x438]
mov eax, dword [ecx]
lea edx, [ebp - 0xc64]
push edx
push str.Unexpected_service_state_after_sending_SERVICE_CONTROL_STOP_to__s._State:__d
push ecx
call dword [eax + 0x14]
mov dword [ebp - 0xc6c], esi
add esp, 0x10
mov esi, ebx
jmp 0x41e3f1
mov esi, dword [ebp - 0xc68]
cmp dword [ebp - 0xc74], 0
je 0x41df6b
cmp dword [ebp - 0xce4], 0
je 0x41df56
push esi
call dword [ebp - 0xce4]
jmp 0x41df56
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x41e444
cmp dword [0x4c12e0], 0
je 0x41e444
mov ecx, dword [eax]
push ebx
push dword [ebp - 0xc70]
push str.There_was_an_error_opening_the_service__s._Error:__d
push eax
call dword [ecx + 0x14]
add esp, 0x10
xor eax, eax
cmp ebx, 0x424
cmove ebx, eax
cmp dword [ebp - 0xc74], eax
je 0x41e466
cmp dword [ebp - 0xcf4], eax
je 0x41e466
push esi
call dword [ebp - 0xcf4]
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41e4e8
cmp dword [0x4c12e0], 0
je 0x41e4e8
cmp dword [0x4c3630], 0
je 0x41e4e8
mov eax, dword [ecx]
push ebx
push str.CInfFile::_HandleRegisterService___returns__d
push ecx
call dword [eax + 0x10]
add esp, 0xc
jmp 0x41e4e8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [edi + 0xc]
mov ebx, eax
test ecx, ecx
je 0x41e4e8
cmp dword [0x4c12e0], 0
je 0x41e4e8
mov eax, dword [ecx]
push ebx
push dword [ebp - 0xc70]
push str.There_was_an_error_opening_the_service_control_manager__for_creating_service__s_._Error:__d
push ecx
call dword [eax + 0x14]
add esp, 0x10
jmp 0x41e4e8
mov esi, dword [ebp - 0xc78]
jmp 0x41e4ea
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x41e4e3
cmp dword [0x4c12e0], ebx
je 0x41e4e3
mov eax, dword [ecx]
push str.Parameters_to_CInfFile::_HandleRegisterService___are_invalid
push ecx
call dword [eax + 0x14]
pop ecx
pop ecx
push 0x57
pop esi
mov ebx, esi
mov esi, ebx
lea ecx, [ebp - 0xd24]
call fcn.00413e7e
mov eax, esi
call fcn.00458f11
ret 0x14