Function at 0x4d8530
Capabilities:
Delete service

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54b0a5
mov eax, dword fs:[0]
push eax
sub esp, 0x15c
mov eax, dword [0x596c60]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov eax, dword [0x59f554]
mov dword [ebp - 0x30], edi
test al, 1
jne 0x4d8597
or eax, 1
mov dword [0x59f554], eax
mov dword [ebp - 4], 0
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x4d85ac
cmp byte [eax + 0x19], 6
jb 0x4d85ac
mov al, 1
jmp 0x4d85ae
xor al, al
cmp byte [0x59f560], 0
jne 0x4d85c8
cmp byte [0x59f561], 0
jne 0x4d85c8
test al, al
je 0x4d86f8
sub esp, 8
mov dword [ebp - 4], 1
lea ecx, [ebp - 0xd0]
call fcn.0047b4d0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xd0]
call fcn.0047ee50
mov edx, str..Service.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x18b
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b46c
mov ecx, eax
call fcn.0047f0b0
mov edx, str.Service::UnInstall
mov ecx, eax
call fcn.0047f0b0
mov byte [ebp - 4], 2
cmp dword [ebp - 0x18], 0x10
jb 0x4d865c
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4d865c
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xd0]
call fcn.0047b620
mov esi, eax
mov byte [ebp - 4], 4
cmp dword [esi + 0x14], 0x10
jb 0x4d8679
mov esi, dword [esi]
mov eax, dword [0x59f554]
test al, 1
jne 0x4d86a4
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 5
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 4
push esi
push 6
mov ecx, 0x59f560
call fcn.004a1510
cmp dword [ebp - 0x18], 0x10
jb 0x4d86c7
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4d86c7
push eax
call fcn.00507b54
add esp, 4
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 1
call fcn.0047b5a0
lea eax, [ebp - 0x80]
mov dword [ebp - 0x80], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
jmp 0x4d86f1
mov dword [ebp - 4], 0xffffffff
mov ecx, edi
call fcn.004d7c00
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x4d88d0
push dword [edi + 0x50]
call dword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
jne 0x4d8880
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x34], eax
mov eax, dword [0x59f554]
test al, 1
jne 0x4d8754
or dword [0x59f554], 1
mov dword [ebp - 4], 7
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x4d8769
cmp byte [eax + 0x19], 2
jb 0x4d8769
mov al, 1
jmp 0x4d876b
xor al, al
cmp byte [0x59f560], 0
jne 0x4d8785
cmp byte [0x59f561], 0
jne 0x4d8785
test al, al
je 0x4d8880
sub esp, 8
mov dword [ebp - 4], 8
lea ecx, [ebp - 0xd0]
call fcn.0047b4d0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 9
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xd0]
call fcn.0047ee50
mov edx, str..Service.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x194
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, str.Failed_to_delete_the_service._Service_Uninstall_Failed.
mov ecx, eax
call fcn.0047f0b0
mov byte [ebp - 4], 9
cmp dword [ebp - 0x18], 0x10
jb 0x4d880d
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4d880d
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xd0]
call fcn.0047b620
mov esi, eax
mov byte [ebp - 4], 0xb
cmp dword [esi + 0x14], 0x10
jb 0x4d882a
mov esi, dword [esi]
call fcn.004a1320
push esi
push 2
mov ecx, eax
call fcn.004a1510
cmp dword [ebp - 0x18], 0x10
jb 0x4d884f
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4d884f
push eax
call fcn.00507b54
add esp, 4
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x80]
call fcn.0047b5a0
lea eax, [ebp - 0x80]
mov dword [ebp - 0x80], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
jmp 0x4d8879
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x59f554]
test al, 1
jne 0x4d88b0
or dword [0x59f554], 1
mov dword [ebp - 4], 0x14
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x4d8a49
cmp byte [eax + 0x19], 6
jb 0x4d8a49
mov al, 1
jmp 0x4d8a4b
mov eax, dword [0x59f554]
test al, 1
jne 0x4d8900
or dword [0x59f554], 1
mov dword [ebp - 4], 0xd
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x4d8915
cmp byte [eax + 0x19], 2
jb 0x4d8915
mov al, 1
jmp 0x4d8917
xor al, al
cmp byte [0x59f560], 0
jne 0x4d8931
cmp byte [0x59f561], 0
jne 0x4d8931
test al, al
je 0x4d8880
sub esp, 8
mov dword [ebp - 4], 0xe
lea ecx, [ebp - 0xd0]
call fcn.0047b4d0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xf
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0xd0]
call fcn.0047ee50
mov edx, str..Service.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x199
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, str.Failed_to_Stop
mov ecx, eax
call fcn.0047f0b0
lea edx, [edi + 0x6c]
mov ecx, eax
call fcn.004a1750
mov edx, str._service.
mov ecx, eax
call fcn.0047f0b0
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x18], 0x10
jb 0x4d89cf
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4d89cf
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xd0]
call fcn.0047b620
mov esi, eax
mov byte [ebp - 4], 0x11
cmp dword [esi + 0x14], 0x10
jb 0x4d89ec
mov esi, dword [esi]
mov eax, dword [0x59f554]
test al, 1
jne 0x4d8a17
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 0x12
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 0x11
push esi
push 2
mov ecx, 0x59f560
call fcn.004a1510
cmp dword [ebp - 0x18], 0x10
jb 0x4d8a3a
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4d8a3a
push eax
call fcn.00507b54
add esp, 4
mov byte [ebp - 4], 0xe
jmp 0x4d8853
xor al, al
cmp byte [0x59f560], 0
jne 0x4d8a65
cmp byte [0x59f561], 0
jne 0x4d8a65
test al, al
je 0x4d8b94
sub esp, 8
mov dword [ebp - 4], 0x15
lea ecx, [ebp - 0xd0]
call fcn.0047b4d0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x16
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0xd0]
call fcn.0047ee50
mov edx, str..Service.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x19c
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, str.Succeeded_uninstalling
mov ecx, eax
call fcn.0047f0b0
lea edx, [edi + 0x6c]
mov ecx, eax
call fcn.004a1750
mov edx, str._service.
mov ecx, eax
call fcn.0047f0b0
mov byte [ebp - 4], 0x16
cmp dword [ebp - 0x18], 0x10
jb 0x4d8b03
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4d8b03
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xd0]
call fcn.0047b620
mov esi, eax
mov byte [ebp - 4], 0x18
cmp dword [esi + 0x14], 0x10
jb 0x4d8b20
mov esi, dword [esi]
mov eax, dword [0x59f554]
test al, 1
jne 0x4d8b4b
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 0x19
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 0x18
push esi
push 6
mov ecx, 0x59f560
call fcn.004a1510
cmp dword [ebp - 0x18], 0x10
jb 0x4d8b6e
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4d8b6e
push eax
call fcn.00507b54
add esp, 4
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x15
call fcn.0047b5a0
lea eax, [ebp - 0x80]
mov dword [ebp - 0x80], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x59f554]
test al, 1
jne 0x4d8bc4
or dword [0x59f554], 1
mov dword [ebp - 4], 0x1b
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x4d8bdf
cmp byte [eax + 0x19], 6
jb 0x4d8bdf
mov al, 1
jmp 0x4d8be1
xor al, al
cmp byte [0x59f560], 0
jne 0x4d8bfb
cmp byte [0x59f561], 0
jne 0x4d8bfb
test al, al
je 0x4d8d34
sub esp, 8
mov dword [ebp - 4], 0x1c
lea ecx, [ebp - 0x168]
call fcn.0047b4d0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1d
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x168]
call fcn.0047ee50
mov edx, str..Service.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x19d
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b498
mov ecx, eax
call fcn.0047f0b0
mov edx, str.Service::UnInstall
mov ecx, eax
call fcn.0047f0b0
mov byte [ebp - 4], 0x1d
cmp dword [ebp - 0x18], 0x10
jb 0x4d8c8f
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4d8c8f
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x168]
call fcn.0047b620
mov esi, eax
mov byte [ebp - 4], 0x1f
cmp dword [esi + 0x14], 0x10
jb 0x4d8cac
mov esi, dword [esi]
mov eax, dword [0x59f554]
test al, 1
jne 0x4d8cd7
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 0x20
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 0x1f
push esi
push 6
mov ecx, 0x59f560
call fcn.004a1510
cmp dword [ebp - 0x18], 0x10
jb 0x4d8cfa
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4d8cfa
push eax
call fcn.00507b54
add esp, 4
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 0x1c
call fcn.0047b5a0
lea eax, [ebp - 0x118]
mov dword [ebp - 0x118], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005072fd
mov esp, ebp
pop ebp
ret