Function at 0x403d2f
Capabilities:
Enumerate services

Disassembly:
push ebp
push ebx
mov edx, 0xf
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x403d36
call fcn.00428a20
mov edx, 0x469028
lea ecx, [esp + 0x20]
call fcn.0041f008
mov edx, 0x469028
lea ecx, [esp + 0x24]
call fcn.0041f008
mov edx, 0x469028
lea ecx, [esp + 0x28]
call fcn.0041f008
lea edx, [esp + 0x34]
push edx
push 0
push 0x18
push 1
push 1
call fcn.0042825e
push reloc.WS2_32.dll_connect
push 0
push 0
call sub.ADVAPI32.dll_OpenSCManagerW
mov dword [esp], eax
cmp dword [esp], 0
je 0x40441a
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 0x404412
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.004283ac
push 0
push dword [esp + 0x10]
mov ebp, dword [esp + 0x3c]
lea eax, [ebp]
push eax
call fcn.004285c0
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 0x404412
mov ebx, dword [esp + 0x14]
and ebx, ebx
jle 0x404412
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 0x403ec6
mov ebp, dword [esp + 4]
cmp dword [ebp + 4], 0
je 0x403ec6
mov eax, 1
jmp 0x403ec8
xor eax, eax
and eax, eax
je 0x4043de
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push 0x19
push 0xffffffff
mov ebp, dword [esp + 0x1c]
push dword [ebp]
call fcn.00428730
call fcn.0041f3d2
add dword [esp], edx
call fcn.0041fdc0
lea eax, [esp + 0x24]
push eax
call fcn.00428ac0
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push 0x19
push 0xffffffff
mov ebp, dword [esp + 0x1c]
push dword [ebp + 4]
call fcn.00428730
call fcn.0041f3d2
add dword [esp], edx
call fcn.0041fdc0
lea eax, [esp + 0x28]
push eax
call fcn.00428ac0
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push 0x19
push 0xffffffff
mov ebp, dword [esp + 0x20]
push dword [ebp]
call fcn.00428730
call fcn.0041f3d2
add dword [esp], edx
call fcn.0040ed72
call fcn.0041f3d2
add dword [esp], edx
call fcn.0041fdc0
lea eax, [esp + 0x2c]
push eax
call fcn.00428ac0
push dword [esp + 0x20]
mov edx, 0x469028
pop ecx
call fcn.0041f400
jne 0x403ff5
push dword [esp + 0x24]
mov edx, 0x469028
pop ecx
call fcn.0041f400
jne 0x403ff5
mov eax, 1
jmp 0x403ff7
xor eax, eax
and eax, eax
je 0x404013
push dword [esp + 0x28]
mov edx, 0x469028
pop ecx
call fcn.0041f400
jne 0x404013
mov eax, 1
jmp 0x404015
xor eax, eax
and eax, eax
je 0x404070
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push dword [esp + 0x2c]
call fcn.00420100
call fcn.00428c10
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
mov eax, str.Shell_Hardware_Detection
push eax
call fcn.00420100
call fcn.0041f440
mov edx, eax
pop ecx
push ecx
call fcn.0041f440
mov ecx, eax
call fcn.0041f400
jne 0x404070
mov eax, 1
jmp 0x404072
xor eax, eax
and eax, eax
je 0x4043de
mov eax, 0x4690d2
push eax
push dword [esp + 0x28]
call fcn.00420050
mov ebx, eax
cmp ebx, 2
jl 0x4043de
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
mov eax, 0x4690d2
push eax
push 1
push dword [esp + 0x3c]
call fcn.0041fde0
call fcn.0041f3d2
add dword [esp], edx
call fcn.0041fdc0
lea eax, [esp + 0x30]
push eax
call fcn.00428ac0
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
mov eax, 0x4690d2
push eax
push 2
push dword [esp + 0x3c]
call fcn.0041fde0
call fcn.0041f3d2
add dword [esp], edx
call fcn.0041fdc0
lea eax, [esp + 0x34]
push eax
call fcn.00428ac0
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push dword [esp + 0x34]
call fcn.00420170
mov ebx, eax
push dword [esp + 0x3c]
call fcn.00420170
sub ebx, eax
push ebx
push dword [esp + 0x40]
call fcn.00420170
mov ebx, eax
inc ebx
push ebx
push dword [esp + 0x3c]
call fcn.004201a0
call fcn.0041f3d2
add dword [esp], edx
call fcn.0041fdc0
lea eax, [esp + 0x28]
push eax
call fcn.00428ac0
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push 1
push 1
push dword [esp + 0x48]
call fcn.004201a0
call fcn.0041f3d2
add dword [esp], edx
call fcn.00420100
lea eax, [esp + 0x30]
push eax
call fcn.00428ac0
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push dword [esp + 0x38]
call fcn.00420100
call fcn.00428c10
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
mov eax, 0x46a686
push eax
call fcn.00420100
call fcn.0041f440
mov edx, eax
pop ecx
push ecx
call fcn.0041f440
mov ecx, eax
call fcn.0041f400
jne 0x40427f
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push dword [esp + 0x38]
call fcn.00420100
call fcn.00428c10
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
mov eax, 0x469a26
push eax
call fcn.00420100
call fcn.0041f440
mov edx, eax
pop ecx
push ecx
call fcn.0041f440
mov ecx, eax
call fcn.0041f400
jne 0x40427f
mov eax, 1
jmp 0x404281
xor eax, eax
and eax, eax
je 0x4042ea
push dword [esp + 0x2c]
call fcn.00420230
mov ebx, eax
mov eax, 0x46919e
push eax
call fcn.00420230
cmp ebx, eax
jl 0x4042c0
push dword [esp + 0x2c]
call fcn.00420230
mov ebx, eax
mov eax, str.Z
push eax
call fcn.00420230
cmp ebx, eax
jg 0x4042c0
mov eax, 1
jmp 0x4042c2
xor eax, eax
and eax, eax
je 0x4042dd
push dword [esp + 0x24]
call fcn.00420170
mov ebx, eax
cmp ebx, 4
jle 0x4042dd
mov eax, 1
jmp 0x4042df
xor eax, eax
and eax, eax
je 0x4042ea
mov eax, 1
jmp 0x4042ec
xor eax, eax
and eax, eax
je 0x4043de
mov edx, dword [esp + 0x2c]
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428b80
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428a80
pop edx
push eax
push dword [esp + 0x30]
call fcn.00420170
mov ebx, eax
dec ebx
push ebx
push 2
push dword [esp + 0x38]
call fcn.004201a0
pop eax
lea eax, [esp + 0x28]
push eax
call fcn.00428ac0
mov edx, dword [esp + 0x20]
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428b80
mov ebx, dword [0x46d51c]
mov ebp, dword [0x46d9a0]
imul ebx, ebx, 0xc
add ebp, ebx
lea eax, [ebp]
push eax
call fcn.00428ac0
mov edx, dword [esp + 0x24]
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428b80
mov ebx, dword [0x46d51c]
mov ebp, dword [0x46d9a0]
imul ebx, ebx, 0xc
add ebp, ebx
lea eax, [ebp + 4]
push eax
call fcn.00428ac0
mov edx, dword [esp + 0x28]
push edx
call fcn.00428a80
pop edx
push eax
push edx
call fcn.00428b80
mov ebx, dword [0x46d51c]
mov ebp, dword [0x46d9a0]
imul ebx, ebx, 0xc
add ebp, ebx
lea eax, [ebp + 8]
push eax
call fcn.00428ac0
mov ebx, dword [0x46d51c]
inc ebx
mov dword [0x46d51c], ebx
mov eax, dword [0x46d51c]
inc eax
push 0x46d9a0
push eax
call fcn.004283ac
mov ebx, dword [esp + 4]
add ebx, 0x24
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x14]
jge 0x404401
mov ebx, dword [esp + 0x1c]
cmp ebx, 0x1f4
jg 0x404401
jmp 0x404408
mov eax, 1
jmp 0x40440a
xor eax, eax
and eax, eax
je 0x403ea2
push dword [esp]
call sub.ADVAPI32.dll_CloseServiceHandle
xor eax, eax
push dword [esp + 0x28]
call fcn.00428b50
push dword [esp + 0x2c]
call fcn.00428b50
push dword [esp + 0x30]
call fcn.00428b50
push dword [esp + 0x20]
call fcn.00428b50
push dword [esp + 0x24]
call fcn.00428b50
push eax
push dword [esp + 0x38]
call fcn.0042847d
pop eax
add esp, 0x3c
pop ebx
pop ebp
ret 4