Function at 0x1801f6c0
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
sub esp, 0x20
push ebx
push esi
push edi
call fcn.18020ca3
test al, al
je 0x1801f6dc
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
call fcn.1801e304
mov ebx, eax
push ebx
call fcn.18019615
pop ecx
test al, al
je 0x1801f730
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
je 0x1801f72c
push 0xfffffffffffffffe
pop edi
push edi
push 2
pop esi
push esi
mov dword [ebp - 0x20], ecx
call fcn.18001d8a
push ebx
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push str._Cant_stop_the_service__0x_08x_
push eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
call fcn.18001000
add esp, 0xc
mov eax, ebx
jmp 0x1801f6d7
push 0xf003f
xor edi, edi
push edi
push edi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xc], eax
cmp eax, edi
jne 0x1801f7a0
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
mov ebx, eax
je 0x1801f78e
push 0xfffffffffffffffe
pop edi
push edi
push 2
pop esi
push esi
mov dword [ebp - 0x20], ecx
call fcn.18001d8a
push ebx
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push str._Failed_to_open_SC_Manager___u_
push eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
call fcn.18001000
add esp, 0xc
xor edi, edi
cmp ebx, edi
jle 0x1801f72c
and ebx, 0xffff
or ebx, 0x80070000
jmp 0x1801f72c
lea eax, [ebp - 8]
push eax
call fcn.18055bd3
pop ecx
push 2
pop esi
push esi
push dword [ebp - 8]
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov ebx, eax
mov dword [ebp - 0x10], ebx
cmp ebx, edi
jne 0x1801f835
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
mov ebx, eax
je 0x1801f808
push 0xfffffffffffffffe
pop edi
push edi
push esi
mov dword [ebp - 0x20], ecx
call fcn.18001d8a
push ebx
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push str._Failed_to_open_service_for_update___u_
push eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
call fcn.18001000
add esp, 0xc
xor edi, edi
cmp ebx, edi
jle 0x1801f818
and ebx, 0xffff
or ebx, 0x80070000
mov edi, ebx
mov eax, dword [ebp - 8]
add eax, 0xfffffff0
call fcn.18004250
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, edi
jmp 0x1801f6d7
push edi
push edi
push edi
push edi
push edi
push edi
push dword [ebp + 8]
push 1
push esi
push 0x10
push ebx
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
test eax, eax
jne 0x1801f8af
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
mov ebx, eax
je 0x1801f891
push 0xfffffffffffffffe
pop edi
push edi
push esi
mov dword [ebp - 0x20], ecx
call fcn.18001d8a
push ebx
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push str._Failed_to_change_service_config___u_
push eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
call fcn.18001000
add esp, 0xc
test ebx, ebx
jle 0x1801f8a1
and ebx, 0xffff
or ebx, 0x80070000
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x1801f818
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
je 0x1801f8ea
push 3
push esi
mov dword [ebp - 0x20], ecx
call fcn.18001d8a
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push str._ChangeServiceConfig_succeeded_
push eax
mov dword [ebp - 0x18], 3
mov dword [ebp - 0x14], esi
call fcn.18001000
pop ecx
pop ecx
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x1801f81a