Function at 0x1801ff9c
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.18020fac
test al, al
je 0x1801ffb8
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
call fcn.1801e89c
mov ebx, eax
push ebx
call fcn.18019615
pop ecx
test al, al
je 0x1802000c
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
je 0x18020008
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 0x1801ffb3
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 0x1802007c
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
mov ebx, eax
je 0x1802006a
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 0x18020008
and ebx, 0xffff
or ebx, 0x80070000
jmp 0x18020008
lea eax, [ebp - 8]
push eax
call fcn.18055ca3
pop ecx
push 2
pop esi
push esi
push dword [ebp - 8]
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov dword [ebp - 0x10], eax
cmp eax, edi
jne 0x1802010f
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
mov ebx, eax
je 0x180200e2
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 0x180200f2
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 0x1801ffb3
push edi
push edi
push edi
push edi
push edi
push edi
push dword [ebp + 8]
push 1
push 3
pop ebx
push ebx
push 0x10
push eax
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
test eax, eax
jne 0x1802018c
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
mov ebx, eax
je 0x1802016e
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 0x1802017e
and ebx, 0xffff
or ebx, 0x80070000
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x180200f2
movzx ecx, byte [0x180fb8f9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbba0
je 0x180201c2
push ebx
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], ebx
mov dword [ebp - 0x14], esi
call fcn.18001000
pop ecx
pop ecx
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x180200f4