Function at 0x1801f6dd
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.18020cc0
test al, al
je 0x1801f6f9
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
call fcn.1801e320
mov ebx, eax
push ebx
call fcn.18019631
pop ecx
test al, al
je 0x1801f74d
movzx ecx, byte [0x180fb8d9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbb80
je 0x1801f749
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 0x1801f6f4
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 0x1801f7bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8d9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbb80
mov ebx, eax
je 0x1801f7ab
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 0x1801f749
and ebx, 0xffff
or ebx, 0x80070000
jmp 0x1801f749
lea eax, [ebp - 8]
push eax
call fcn.18055fa8
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 0x1801f852
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8d9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbb80
mov ebx, eax
je 0x1801f825
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 0x1801f835
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 0x1801f6f4
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 0x1801f8cc
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8d9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbb80
mov ebx, eax
je 0x1801f8ae
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 0x1801f8be
and ebx, 0xffff
or ebx, 0x80070000
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x1801f835
movzx ecx, byte [0x180fb8d9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbb80
je 0x1801f907
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 0x1801f837