Function at 0x4247c0
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b11a8
mov eax, dword fs:[0]
push eax
sub esp, 0xb0
mov eax, dword [0x503074]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x4c965c
push str.ChpqWmiExModule::IsInstalled
push 0
call fcn.00422b80
push eax
call fcn.0047bd80
add esp, 0x10
xor esi, esi
call fcn.00422b80
mov al, byte [eax + 0x38]
test al, al
je 0x424835
push 0x28
call fcn.00475970
add esp, 4
mov esi, eax
push str.ChpqWmiExModule::IsInstalled
call fcn.00422b80
push eax
mov ecx, esi
call fcn.00477bf0
mov esi, eax
lea eax, [ebp - 0xb4]
mov dword [ebp - 0x60], vtable.std::_Func_impl_class__lambda_58c4f64ef436e85a01d5534dc91ad6e9___class_std::allocator_int___void___.0
mov dword [ebp - 0x5c], eax
lea ecx, [ebp - 0x60]
lea eax, [ebp - 0x60]
xor edi, edi
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0xb0]
push eax
mov dword [ebp - 0xb4], edi
mov dword [ebp - 0x8c], edi
call fcn.0042e340
mov dword [ebp - 0x8c], eax
mov dword [ebp - 4], edi
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x42488e
mov edx, dword [ecx]
lea eax, [ebp - 0x60]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 4], 1
test ecx, ecx
je 0x4248aa
mov edx, dword [ecx]
lea eax, [ebp - 0x60]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
push 0xf003f
push 0
push 0
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0xb4], eax
test eax, eax
je 0x424a16
push str.OpenSCManager_passed
push str.ChpqWmiExModule::IsInstalled
push 2
call fcn.00422b80
push eax
call fcn.0047bd80
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x38]
add esp, 0x10
mov dword [ebp - 0x38], vtable.std::_Func_impl_class__lambda_b4fa7e5c7a27601ffb351b2e06082bc2___class_std::allocator_int___void___.0
lea eax, [ebp - 0x38]
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x88]
push eax
call fcn.0042e310
mov dword [ebp - 0x64], eax
mov dword [ebp - 4], 2
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x424945
mov edx, dword [ecx]
lea eax, [ebp - 0x38]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 3
test ecx, ecx
je 0x424968
mov edx, dword [ecx]
lea eax, [ebp - 0x38]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov dword [ebp - 0x14], 0
push 1
push 0x50c040
mov dword [ebp - 4], 0xffffffff
push dword [ebp - 0xb4]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x4249e5
push 0x50c040
push str.OpenService__for_service_name__s__:passed
push str.ChpqWmiExModule::IsInstalled
push 2
mov edi, 1
call fcn.00422b80
push eax
call fcn.0047bd80
add esp, 0x14
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push 3
push 0xffffffffffffffff
push dword [ebp - 0xb8]
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
test eax, eax
jne 0x424a0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x430
jne 0x424a0b
xor edi, edi
jmp 0x424a0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x50c040
push str.OpenService__for_service_name__s__:failed.__GetLastError___returns_0x_x
push str.ChpqWmiExModule::IsInstalled
push 2
call fcn.00422b80
push eax
call fcn.0047bd80
add esp, 0x18
lea ecx, [ebp - 0x88]
call fcn.00402190
push 0x4c965c
push str.ChpqWmiExModule::IsInstalled
push 1
call fcn.00422b80
push eax
call fcn.0047bd80
add esp, 0x10
lea ecx, [ebp - 0xb0]
call fcn.00402190
test esi, esi
je 0x424a51
mov ecx, esi
call fcn.00478c00
push 0x28
push esi
call fcn.00475d73
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004756da
mov esp, ebp
pop ebp
ret