Function at 0x40a040
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x426311
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x104
push ebx
push esi
push edi
mov eax, dword [0x42f3b0]
mov dword [esp + 0x118], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x124]
lea ecx, [esp + 0x34]
push eax
mov byte [esp + 0x11c], 2
call fcn.004042a0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x118], 3
call fcn.00404b80
lea ecx, [esp + 0x70]
push 1
push ecx
lea ecx, [esp + 0x3c]
mov byte [esp + 0x120], 4
call fcn.00404710
mov edx, dword [esp + 0x74]
lea eax, [edx - 1]
cmp eax, 6
ja case.default.0x40a0c7
jmp dword [eax*4 + 0x40aaf8]
push str.Start_pending
jmp 0x40a10c
push str.Stop_pending
jmp 0x40a10c
push str.Running
jmp 0x40a10c
push str.Continue_pending
jmp 0x40a10c
push str.Pause_pending
jmp 0x40a10c
push str.Paused
jmp 0x40a10c
mov eax, dword [esp + 0x7c]
test eax, eax
jne case.0x40a0c7.1
push str.Status:_unknown_
jmp 0x40a10c
push str.Stopped
lea ecx, [esp + 0x10]
call fcn.0041f0bf
lea eax, [esp + 0x14]
lea ecx, [esp + 0x34]
push eax
call fcn.004045e0
mov ecx, dword [esp + 0xc]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x18]
push str.__s_s_
push eax
mov byte [esp + 0x128], 5
call fcn.0041e3cc
add esp, 0x10
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 4
call fcn.0041ef82
push 1
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.0041ecf7
mov edi, dword [esp + 0x128]
push edi
call fcn.00408d30
add esp, 0xc
lea ecx, [esp + 0x30]
push str.SystemRoot
call fcn.0041eff0
mov eax, dword [0x42f3b0]
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x118], 7
push ecx
lea ecx, [esp + 0xcc]
call fcn.004052f0
test eax, eax
jne 0x40a1b6
lea ecx, [esp + 0x24]
call fcn.0041ef0d
lea edx, [esp + 0x14]
lea ecx, [esp + 0x34]
push edx
call fcn.00404600
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x11c], 8
call fcn.0041f06f
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 7
call fcn.0041ef82
mov eax, dword [esp + 0xc]
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x40a200
push str._unavailable_
lea ecx, [esp + 0x10]
call fcn.0041f0bf
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx - 8]
test eax, eax
je 0x40a27f
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0xc]
push edx
call fcn.0041e046
test eax, eax
jne 0x40a27f
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x20]
mov eax, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x14]
call fcn.0041de4c
push eax
lea edx, [esp + 0x28]
lea eax, [esp + 0x18]
mov bl, 9
push edx
push eax
mov byte [esp + 0x124], bl
call fcn.0041f165
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x11c], 0xa
call fcn.0041f06f
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], bl
call fcn.0041ef82
lea ecx, [esp + 0x20]
mov byte [esp + 0x118], 7
call fcn.0041ef82
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x10]
push ecx
push str.Pathname
push str.__s_s_
push edx
call fcn.0041e3cc
add esp, 0x10
lea eax, [esp + 0x10]
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.0041ecf7
push edi
call fcn.00408d30
add esp, 0xc
lea ecx, [esp + 0xc]
call fcn.0041ef0d
mov eax, dword [esp + 0x70]
mov ecx, eax
and ecx, 0x10
cmp cl, 0x10
jne 0x40a2d5
push str.Runs_in_its_own_process
jmp 0x40a306
mov edx, eax
and edx, 0x20
cmp dl, 0x20
jne 0x40a2e6
push str.Shares_a_process_with_other_processes
jmp 0x40a306
mov ecx, eax
and ecx, 1
cmp cl, 1
jne 0x40a2f7
push str.Kernel_device_driver
jmp 0x40a306
mov edx, eax
and edx, 2
cmp dl, 2
jne 0x40a313
push str.File_system_driver
lea ecx, [esp + 0x10]
call fcn.0041f0bf
mov eax, dword [esp + 0x70]
and eax, 0x100
cmp eax, 0x100
jne 0x40a356
lea eax, [esp + 0xc]
push str._and_can_iteract_with_the_desktop
lea ecx, [esp + 0x18]
push eax
push ecx
call fcn.0041f1cb
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x11c], 0xb
call fcn.0041f06f
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 7
call fcn.0041ef82
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x10]
push edx
push str.Service_Type
push str.__s_s_
push eax
call fcn.0041e3cc
add esp, 0x10
lea edx, [esp + 0x10]
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.0041ecf7
push edi
call fcn.00408d30
add esp, 0xc
lea ecx, [esp + 0x34]
call fcn.004046b0
cmp eax, 4
ja case.default.0x40a39c
jmp dword [eax*4 + 0x40ab14]
push str.Boot
jmp 0x40a3cb
push str.System
jmp 0x40a3cb
push str.Automatic
jmp 0x40a3cb
push str.Manual
jmp 0x40a3cb
push str.Disabled
jmp 0x40a3cb
push str._unknown_
lea ecx, [esp + 0x10]
call fcn.0041f0bf
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
push str.Start_Type
push str.__s_s_
push ecx
call fcn.0041e3cc
add esp, 0x10
lea edx, [esp + 0x10]
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.0041ecf7
push edi
call fcn.00408d30
add esp, 0xc
lea ecx, [esp + 0x34]
call fcn.004046e0
cmp eax, 3
ja case.default.0x40a41a
jmp dword [eax*4 + 0x40ab28]
push str.Ignore
jmp 0x40a442
push str.Normal
jmp 0x40a442
push str.Severe
jmp 0x40a442
push str.Critical
jmp 0x40a442
push str._unknown_
lea ecx, [esp + 0x10]
call fcn.0041f0bf
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
push str.Error_Severity
push str.__s_s_
push ecx
call fcn.0041e3cc
add esp, 0x10
lea edx, [esp + 0x10]
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.0041ecf7
push edi
call fcn.00408d30
add esp, 0xc
lea eax, [esp + 0x14]
lea ecx, [esp + 0x34]
push eax
call fcn.00404620
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x11c], 0xc
call fcn.0041f06f
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 7
call fcn.0041ef82
mov eax, dword [esp + 0xc]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x40a4f3
push eax
push str.Group
lea ecx, [esp + 0x18]
push str.__s_s_
push ecx
call fcn.0041e3cc
add esp, 0x10
lea edx, [esp + 0x10]
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.0041ecf7
push edi
call fcn.00408d30
add esp, 0xc
lea eax, [esp + 0x14]
lea ecx, [esp + 0x34]
push eax
call fcn.00404660
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x11c], 0xd
call fcn.0041f06f
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 7
call fcn.0041ef82
mov eax, dword [esp + 0x128]
test eax, eax
jne 0x40a56f
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx - 8]
test eax, eax
jne 0x40a548
push str.LocalSystem
lea ecx, [esp + 0x10]
call fcn.0041f0bf
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x10]
push edx
push str.Service_Account_Name
push str.__s_s_
push eax
call fcn.0041e3cc
add esp, 0x10
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
jmp 0x40a59b
mov eax, dword [esp + 0xc]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x40a5ae
push eax
push str.Driver_Object_Name
lea eax, [esp + 0x18]
push str.__s_s_
push eax
call fcn.0041e3cc
add esp, 0x10
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
lea edx, [esp + 0x18]
push edx
call fcn.0041ecf7
push edi
call fcn.00408d30
add esp, 0xc
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x34]
push eax
call fcn.00404640
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x118], 0xe
mov eax, dword [ecx - 8]
test eax, eax
je 0x40a861
push str.Dependencies
lea edx, [esp + 0x14]
push str.__s_
push edx
call fcn.0041e3cc
add esp, 0xc
lea eax, [esp + 0x10]
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.0041ecf7
push edi
call fcn.00408d30
add esp, 0xc
lea ecx, [esp + 0x1c]
push 0x42e7b8
call fcn.0041e046
mov esi, eax
cmp esi, 0xffffffff
je 0x40a77a
lea ecx, [esp + 0x20]
push esi
push ecx
lea ecx, [esp + 0x24]
call fcn.0041df81
push 1
push 0x2b
lea ecx, [esp + 0x1c]
mov byte [esp + 0x120], 0xf
call fcn.0041de18
lea edx, [esp + 0x48]
push 1
push edx
lea ecx, [esp + 0x28]
mov byte [esp + 0x120], 0x10
call fcn.0041df81
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
push ecx
push eax
call fcn.00411964
add esp, 8
lea ecx, [esp + 0x48]
test eax, eax
sete bl
call fcn.0041ef82
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 0xf
call fcn.0041ef82
test bl, bl
je 0x40a6ea
lea edx, [esp + 0x28]
push 1
push edx
lea ecx, [esp + 0x28]
call fcn.0041de4c
push str.__Group_
push eax
lea eax, [esp + 0x4c]
mov byte [esp + 0x120], 0x11
push eax
call fcn.0041f1cb
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x11c], 0x12
call fcn.0041f06f
lea ecx, [esp + 0x44]
mov byte [esp + 0x118], 0x11
call fcn.0041ef82
lea ecx, [esp + 0x28]
mov byte [esp + 0x118], 0xf
call fcn.0041ef82
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x10]
push ecx
push str.__s_
push edx
call fcn.0041e3cc
add esp, 0xc
lea eax, [esp + 0x10]
push 3
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.0041ecf7
push edi
call fcn.00408d30
add esp, 0xc
inc esi
lea ecx, [esp + 0x18]
push esi
push ecx
lea ecx, [esp + 0x24]
call fcn.0041de4c
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x11c], 0x13
call fcn.0041f06f
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], 0xf
call fcn.0041ef82
lea ecx, [esp + 0x20]
mov byte [esp + 0x118], 0xe
call fcn.0041ef82
push 0x42e7b8
lea ecx, [esp + 0x20]
call fcn.0041e046
mov esi, eax
cmp esi, 0xffffffff
jne 0x40a61f
push 1
push 0x2b
lea ecx, [esp + 0x1c]
call fcn.0041de18
lea edx, [esp + 0x18]
push 1
push edx
lea ecx, [esp + 0x24]
mov byte [esp + 0x120], 0x14
call fcn.0041df81
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
push ecx
push eax
call fcn.00411964
add esp, 8
lea ecx, [esp + 0x18]
test eax, eax
sete bl
call fcn.0041ef82
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 0xe
call fcn.0041ef82
test bl, bl
je 0x40a82e
lea edx, [esp + 0x28]
push 1
push edx
lea ecx, [esp + 0x24]
call fcn.0041de4c
push str.__Group_
push eax
lea eax, [esp + 0x20]
mov bl, 0x15
push eax
mov byte [esp + 0x124], bl
call fcn.0041f1cb
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x11c], 0x16
call fcn.0041f06f
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], bl
call fcn.0041ef82
lea ecx, [esp + 0x28]
mov byte [esp + 0x118], 0xe
call fcn.0041ef82
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x10]
push ecx
push str.__s_
push edx
call fcn.0041e3cc
add esp, 0xc
lea eax, [esp + 0x10]
push 3
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.0041ecf7
push edi
call fcn.00408d30
add esp, 0xc
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x90]
call fcn.00403630
push 3
lea ecx, [esp + 0x90]
mov byte [esp + 0x11c], 0x17
call fcn.004037c0
test eax, eax
je 0x40aa10
lea ecx, [esp + 0x5c]
call fcn.0041e640
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x8c]
push edx
mov byte [esp + 0x11c], 0x18
call fcn.00403940
mov eax, dword [esp + 0x64]
test eax, eax
jle 0x40a8ed
push str.Dependents
lea eax, [esp + 0x14]
push str.__s_
push eax
call fcn.0041e3cc
add esp, 0xc
lea edx, [esp + 0x10]
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.0041ecf7
push edi
call fcn.00408d30
add esp, 0xc
mov eax, dword [esp + 0x64]
xor esi, esi
test eax, eax
jle 0x40a9ff
mov bl, 0x19
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x4c]
mov eax, dword [eax + esi*4]
push eax
call fcn.004042a0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x118], bl
call fcn.00404680
and eax, 1
cmp al, 1
je 0x40a985
lea ecx, [esp + 0x4c]
call fcn.00404680
and eax, 2
cmp al, 2
je 0x40a985
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x50]
call fcn.004045e0
mov edx, dword [eax]
push str.Service
push edx
lea eax, [esp + 0x18]
push str.__s_s_
push eax
mov byte [esp + 0x128], 0x1b
call fcn.0041e3cc
add esp, 0x10
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], bl
call fcn.0041ef82
push 3
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
jmp 0x40a9d3
lea eax, [esp + 0x28]
lea ecx, [esp + 0x4c]
push eax
call fcn.004045e0
mov ecx, dword [eax]
push str.Device
push ecx
lea edx, [esp + 0x18]
push str.__s_s_
push edx
mov byte [esp + 0x128], 0x1a
call fcn.0041e3cc
add esp, 0x10
lea ecx, [esp + 0x28]
mov byte [esp + 0x118], bl
call fcn.0041ef82
push 3
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.0041ecf7
push edi
call fcn.00408d30
add esp, 0xc
lea ecx, [esp + 0x4c]
mov byte [esp + 0x118], 0x18
call fcn.00404380
mov eax, dword [esp + 0x64]
inc esi
cmp esi, eax
jl 0x40a8fd
lea ecx, [esp + 0x5c]
mov byte [esp + 0x118], 0x17
call fcn.0041e673
lea ecx, [esp + 0xb0]
mov byte [esp + 0x118], 0x1d
call fcn.0041e673
lea ecx, [esp + 0x9c]
mov byte [esp + 0x118], 0x1c
call fcn.0041e673
lea ecx, [esp + 0x8c]
mov byte [esp + 0x118], 0xe
call fcn.00404380
lea ecx, [esp + 0x1c]
mov byte [esp + 0x118], 7
call fcn.0041ef82
lea ecx, [esp + 0x24]
mov byte [esp + 0x118], 6
call fcn.0041ef82
lea ecx, [esp + 0x30]
mov byte [esp + 0x118], 4
call fcn.0041ef82
lea ecx, [esp + 0xc8]
mov byte [esp + 0x118], 3
call fcn.00404bb0
lea ecx, [esp + 0x34]
mov byte [esp + 0x118], 2
call fcn.00404380
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], 1
call fcn.0041ef82
lea ecx, [esp + 0xc]
mov byte [esp + 0x118], 0
call fcn.0041ef82
lea ecx, [esp + 0x124]
mov dword [esp + 0x118], 0xffffffff
call fcn.0041ef82
mov ecx, dword [esp + 0x110]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
add esp, 0x110
ret