Function at 0x404b70
Capabilities:
Delete service
Query service status
Stop service

Disassembly:
sub esp, 0x50
mov eax, dword [0x452020]
xor eax, esp
mov dword [esp + 0x4c], eax
push ebx
push ebp
push esi
mov ebp, ecx
xor esi, esi
push edi
lea ecx, [esp + 0x28]
mov dword [esp + 0x10], ebp
call fcn.00401cd0
push 0xf003f
push esi
push esi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov edi, eax
test edi, edi
jne 0x404bbf
mov ebx, str.CDriverInstaller::DeleteService__:_OpenSCManager_failed:_ErrorCode:___d__
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0xc
push eax
add ebp, ecx
push ebx
jmp 0x404dc3
cmp dword [0x4540c4], 8
mov eax, 0x4540b0
push 0x10024
cmovae eax, dword [0x4540b0]
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov esi, eax
test esi, esi
jne 0x404bfe
mov ebx, str.CDriverInstaller::DeleteService__:_OpenService_failed:_ErrorCode:___d__
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0xc
push eax
add ebp, ecx
push ebx
jmp 0x404dc3
lea eax, [esp + 0x34]
push eax
push 0x24
lea eax, [esp + 0x40]
push eax
push 0
push esi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
jne 0x404c30
mov ebx, str.DriverInstaller::DeleteService__:_QueryServiceStatusEx_failed___d__n
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0xc
push eax
add ebp, ecx
push ebx
jmp 0x404dc3
mov eax, dword [esp + 0x3c]
cmp eax, 1
je 0x404d96
cmp eax, 3
je 0x404c6d
lea eax, [esp + 0x38]
push eax
push 1
push esi
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
jne 0x404c69
mov ebx, str.CDriverInstaller::DeleteService__:_ControlService_failed___d__n
add ebp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
jmp 0x404dc3
mov eax, dword [esp + 0x3c]
cmp eax, 1
je 0x404d96
nop word [eax + eax]
mov eax, dword [esp + 0x50]
xor ecx, ecx
cmp eax, 0x2710
ja 0x404c9b
cmp eax, 0x3e8
jae 0x404ca2
mov eax, 0x3e8
jmp 0x404ca0
mov eax, 0x2710
xor ecx, ecx
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], eax
call fcn.00405580
lea eax, [esp + 0x34]
push eax
push 0x24
lea eax, [esp + 0x40]
push eax
push 0
push esi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x404df3
cmp dword [esp + 0x3c], 1
je 0x404d92
call fcn.0041c4a9
mov ebp, eax
mov ebx, edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebx
call fcn.0041c492
mov ecx, eax
cmp ebp, 0x989680
jne 0x404d14
test ebx, ebx
jne 0x404d14
mov eax, edx
mov ebp, 0x64
mul ebp
mov ebx, eax
mov eax, ecx
mul ebp
add ebx, edx
mov edx, eax
jmp 0x404d66
push ebx
push ebp
push edx
push ecx
call fcn.00439130
push 0
push 0x3b9aca00
push ebx
push ecx
mov dword [esp + 0x2c], eax
mov ebp, edx
call fcn.0041ddb0
push dword [esp + 0x18]
push dword [esp + 0x18]
push edx
push eax
call fcn.00438e00
mov dword [esp + 0x14], eax
mov ebx, edx
mov ecx, 0x3b9aca00
mov eax, ebp
mul ecx
mov edx, 0x3b9aca00
mov ecx, eax
mov eax, dword [esp + 0x1c]
mul edx
add ecx, edx
mov edx, dword [esp + 0x14]
add edx, eax
adc ebx, ecx
sub edx, dword [esp + 0x28]
push 0
sbb ebx, dword [esp + 0x30]
push 0x3b9aca00
push ebx
push edx
call fcn.00438e00
test edx, edx
jg 0x404dd5
jl 0x404d87
cmp eax, 0x14
ja 0x404dd5
cmp dword [esp + 0x3c], 1
jne 0x404c80
mov ebp, dword [esp + 0x10]
push str.CDriverInstaller::DeleteService__:_MonitorFunction_stopped_successfully_n
add ebp, 0xc
push 0xc8
push ebp
call fcn.00407d80
add esp, 0xc
push esi
call dword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
jne 0x404e09
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CDriverInstaller::DeleteService__:_DeleteService_failed:_ErrorCode:___d__
push 0xc8
push ebp
call fcn.00407d80
add esp, 0x10
xor bl, bl
jmp 0x404e1e
mov eax, dword [esp + 0x10]
push str.CDriverInstaller::DeleteService__:_Wait_timed_out_n
add eax, 0xc
push 0xc8
push eax
call fcn.00407d80
add esp, 0xc
xor bl, bl
jmp 0x404e1e
mov ebp, dword [esp + 0x10]
mov ebx, str.CDriverInstaller::DeleteService__:_QueryServiceStatusEx_failed___d__n
add ebp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
jmp 0x404dc3
push str.CDriverInstaller::DeleteService__:_DeleteService_success_
push 0xc8
push ebp
call fcn.00407d80
add esp, 0xc
mov bl, 1
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ecx, dword [esp + 0x5c]
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0041d1ec
add esp, 0x50
ret 4