Function at 0x1801ffb9
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.18020fc9
test al, al
je 0x1801ffd5
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
call fcn.1801e8b8
mov ebx, eax
push ebx
call fcn.18019631
pop ecx
test al, al
je 0x18020029
movzx ecx, byte [0x180fb8d9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbb80
je 0x18020025
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 0x1801ffd0
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 0x18020099
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8d9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbb80
mov ebx, eax
je 0x18020087
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 0x18020025
and ebx, 0xffff
or ebx, 0x80070000
jmp 0x18020025
lea eax, [ebp - 8]
push eax
call fcn.18056078
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 0x1802012c
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8d9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbb80
mov ebx, eax
je 0x180200ff
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 0x1802010f
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 0x1801ffd0
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 0x180201a9
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x180fb8d9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbb80
mov ebx, eax
je 0x1802018b
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 0x1802019b
and ebx, 0xffff
or ebx, 0x80070000
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x1802010f
movzx ecx, byte [0x180fb8d9]
neg ecx
sbb ecx, ecx
and ecx, 0x180fbb80
je 0x180201df
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 0x18020111