Function at 0x403bcb
Capabilities:
Enumerate services

Disassembly:
push ebp
push ebx
mov edx, 0xf
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x403bd2
call fcn.00428690
mov edx, 0x457024
lea ecx, [esp + 0x20]
call fcn.0041f008
mov edx, 0x457024
lea ecx, [esp + 0x24]
call fcn.0041f008
mov edx, 0x457024
lea ecx, [esp + 0x28]
call fcn.0041f008
lea edx, [esp + 0x34]
push edx
push 0
push 0x18
push 1
push 1
call fcn.004282ce
push 0x80000004
push 0
push 0
call sub.ADVAPI32.DLL_OpenSCManagerW
mov dword [esp], eax
cmp dword [esp], 0
je 0x404293
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 3
push dword [esp + 0x60]
push dword [esp + 0x1c]
call sub.ADVAPI32.DLL_EnumServicesStatusW
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x10]
and ebx, ebx
jle 0x40428b
push dword [esp + 0x10]
pop eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
inc eax
lea edx, [esp + 0x34]
push edx
push eax
call fcn.0042841c
push 0
push dword [esp + 0x10]
mov ebp, dword [esp + 0x3c]
lea eax, [ebp]
push eax
call fcn.00421d60
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x18]
lea eax, [ebp]
push eax
push 3
push dword [esp + 0x60]
push dword [esp + 0x1c]
call sub.ADVAPI32.DLL_EnumServicesStatusW
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], 0
je 0x40428b
mov ebx, dword [esp + 0x14]
and ebx, ebx
jle 0x40428b
mov dword [esp + 0x1c], 0
mov ebp, dword [esp + 0x34]
lea eax, [ebp]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x1c]
inc ebx
mov dword [esp + 0x1c], ebx
mov ebp, dword [esp + 4]
cmp dword [ebp], 0
je 0x403d62
mov ebp, dword [esp + 4]
cmp dword [ebp + 4], 0
je 0x403d62
mov eax, 1
jmp 0x403d64
xor eax, eax
and eax, eax
je 0x404257
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push 0x19
push 0xffffffff
mov ebp, dword [esp + 0x1c]
push dword [ebp]
call fcn.00421ec0
call fcn.0041f362
add dword [esp], edx
call fcn.0041fbc0
lea eax, [esp + 0x24]
push eax
call fcn.00428730
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push 0x19
push 0xffffffff
mov ebp, dword [esp + 0x1c]
push dword [ebp + 4]
call fcn.00421ec0
call fcn.0041f362
add dword [esp], edx
call fcn.0041fbc0
lea eax, [esp + 0x28]
push eax
call fcn.00428730
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push 0x19
push 0xffffffff
mov ebp, dword [esp + 0x20]
push dword [ebp]
call fcn.00421ec0
call fcn.0041f362
add dword [esp], edx
call fcn.0040eb98
call fcn.0041f362
add dword [esp], edx
call fcn.0041fbc0
lea eax, [esp + 0x2c]
push eax
call fcn.00428730
push dword [esp + 0x20]
mov edx, 0x457024
pop ecx
call fcn.0041f390
jne 0x403ef2
push dword [esp + 0x24]
mov edx, 0x457024
pop ecx
call fcn.0041f390
jne 0x403ef2
push dword [esp + 0x28]
mov edx, 0x457024
pop ecx
call fcn.0041f390
jne 0x403ef2
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push dword [esp + 0x2c]
call fcn.0041ff00
call fcn.00428880
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
mov eax, str.Shell_Hardware_Detection
push eax
call fcn.0041ff00
call fcn.0041f3d0
mov edx, eax
pop ecx
push ecx
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f390
jne 0x403ef2
mov eax, 1
jmp 0x403ef4
xor eax, eax
and eax, eax
je 0x404257
mov eax, 0x4570ce
push eax
push dword [esp + 0x28]
call fcn.0041fe50
mov ebx, eax
cmp ebx, 2
jl 0x404257
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
mov eax, 0x4570ce
push eax
push 1
push dword [esp + 0x3c]
call fcn.0041fbe0
call fcn.0041f362
add dword [esp], edx
call fcn.0041fbc0
lea eax, [esp + 0x30]
push eax
call fcn.00428730
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
mov eax, 0x4570ce
push eax
push 2
push dword [esp + 0x3c]
call fcn.0041fbe0
call fcn.0041f362
add dword [esp], edx
call fcn.0041fbc0
lea eax, [esp + 0x34]
push eax
call fcn.00428730
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push dword [esp + 0x34]
call fcn.0041ff70
mov ebx, eax
push dword [esp + 0x3c]
call fcn.0041ff70
sub ebx, eax
push ebx
push dword [esp + 0x40]
call fcn.0041ff70
mov ebx, eax
inc ebx
push ebx
push dword [esp + 0x3c]
call fcn.0041ffa0
call fcn.0041f362
add dword [esp], edx
call fcn.0041fbc0
lea eax, [esp + 0x28]
push eax
call fcn.00428730
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push 1
push 1
push dword [esp + 0x48]
call fcn.0041ffa0
call fcn.0041f362
add dword [esp], edx
call fcn.0041ff00
lea eax, [esp + 0x30]
push eax
call fcn.00428730
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push dword [esp + 0x38]
call fcn.0041ff00
call fcn.00428880
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
mov eax, 0x45867e
push eax
call fcn.0041ff00
call fcn.0041f3d0
mov edx, eax
pop ecx
push ecx
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f390
jne 0x404163
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push dword [esp + 0x38]
call fcn.0041ff00
call fcn.00428880
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
mov eax, 0x457a24
push eax
call fcn.0041ff00
call fcn.0041f3d0
mov edx, eax
pop ecx
push ecx
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f390
jne 0x404163
push dword [esp + 0x2c]
call fcn.00420030
mov ebx, eax
mov eax, 0x45719a
push eax
call fcn.00420030
cmp ebx, eax
jl 0x404139
push dword [esp + 0x2c]
call fcn.00420030
mov ebx, eax
mov eax, str.Z
push eax
call fcn.00420030
cmp ebx, eax
jg 0x404139
mov eax, 1
jmp 0x40413b
xor eax, eax
and eax, eax
je 0x404156
push dword [esp + 0x24]
call fcn.0041ff70
mov ebx, eax
cmp ebx, 4
jle 0x404156
mov eax, 1
jmp 0x404158
xor eax, eax
and eax, eax
je 0x404163
mov eax, 1
jmp 0x404165
xor eax, eax
and eax, eax
je 0x404257
mov edx, dword [esp + 0x2c]
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004287f0
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004286f0
pop edx
push eax
push dword [esp + 0x30]
call fcn.0041ff70
mov ebx, eax
dec ebx
push ebx
push 2
push dword [esp + 0x38]
call fcn.0041ffa0
pop eax
lea eax, [esp + 0x28]
push eax
call fcn.00428730
mov edx, dword [esp + 0x20]
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004287f0
mov ebx, dword [0x45b328]
mov ebp, dword [0x45b7ac]
imul ebx, ebx, 0xc
add ebp, ebx
lea eax, [ebp]
push eax
call fcn.00428730
mov edx, dword [esp + 0x24]
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004287f0
mov ebx, dword [0x45b328]
mov ebp, dword [0x45b7ac]
imul ebx, ebx, 0xc
add ebp, ebx
lea eax, [ebp + 4]
push eax
call fcn.00428730
mov edx, dword [esp + 0x28]
push edx
call fcn.004286f0
pop edx
push eax
push edx
call fcn.004287f0
mov ebx, dword [0x45b328]
mov ebp, dword [0x45b7ac]
imul ebx, ebx, 0xc
add ebp, ebx
lea eax, [ebp + 8]
push eax
call fcn.00428730
mov ebx, dword [0x45b328]
inc ebx
mov dword [0x45b328], ebx
mov eax, dword [0x45b328]
inc eax
push 0x45b7ac
push eax
call fcn.0042841c
mov ebx, dword [esp + 4]
add ebx, 0x24
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x14]
jge 0x40427a
mov ebx, dword [esp + 0x1c]
cmp ebx, 0x1f4
jg 0x40427a
jmp 0x404281
mov eax, 1
jmp 0x404283
xor eax, eax
and eax, eax
je 0x403d3e
push dword [esp]
call sub.ADVAPI32.DLL_CloseServiceHandle
xor eax, eax
push dword [esp + 0x28]
call fcn.004287c0
push dword [esp + 0x2c]
call fcn.004287c0
push dword [esp + 0x30]
call fcn.004287c0
push dword [esp + 0x20]
call fcn.004287c0
push dword [esp + 0x24]
call fcn.004287c0
push eax
push dword [esp + 0x38]
call fcn.004284ed
pop eax
add esp, 0x3c
pop ebx
pop ebp
ret 4