Function at 0x410235
Capabilities:
Enumerate services
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x27c
push ebx
push esi
xor esi, esi
push edi
mov dword [ebp - 0x3c], esi
call fcn.004101c9
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push esi
push esi
push 0x1009
push dword [0x424f14]
call edi
push esi
mov ebx, 0x110a
push 9
push ebx
push dword [0x424fac]
call edi
cmp eax, esi
jne 0x410296
push esi
push esi
push ebx
push dword [0x424fac]
call edi
push eax
push 9
push 0x110b
mov dword [ebp - 0x10], eax
push dword [0x424fac]
call edi
mov eax, dword [ebp - 0x10]
push 4
mov dword [ebp - 0x78], eax
pop ebx
lea eax, [ebp - 0x7c]
push eax
push esi
push 0x110c
mov dword [ebp - 0x7c], ebx
push dword [0x424fac]
call edi
cmp eax, 1
jne 0x410767
push dword [ebp - 0x58]
call fcn.004073f1
mov edi, eax
cmp edi, esi
mov dword [ebp - 0x10], edi
je 0x41076d
or dword [ebp - 0x34], 0xffffffff
push ebx
push esi
push esi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
cmp eax, esi
mov dword [ebp - 0xc], eax
je 0x410358
lea ecx, [ebp - 0x4c]
mov ebx, dword [sym.imp.ADVAPI32.dll_EnumServicesStatusW]
push ecx
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0x40]
push ecx
push esi
push esi
push 3
push 0xb
push eax
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x40], esi
call ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0x41034c
mov eax, dword [ebp - 0x40]
push 4
push 0x1000
lea edi, [eax + 0xfff]
and di, 0xf000
push edi
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
cmp eax, esi
mov dword [ebp - 0x44], eax
je 0x41034c
lea ecx, [ebp - 0x4c]
push ecx
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0x40]
push ecx
push edi
push eax
push 3
push 0xb
push dword [ebp - 0xc]
call ebx
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov edi, dword [ebp - 0x10]
cmp word [edi], si
je 0x410744
lea ebx, [edi + 0xc]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
cmp word [ebx - 0xa], si
je 0x410744
inc dword [ebp - 0x34]
mov dword [ebp - 0x38], 7
mov dword [ebp - 8], esi
mov dword [ebp - 4], 0x41fe88
mov eax, dword [ebp - 4]
push dword [eax]
push dword [ebx]
call fcn.00415020
pop ecx
test eax, eax
pop ecx
je 0x4103ac
add dword [ebp - 4], 4
inc dword [ebp - 8]
cmp dword [ebp - 4], 0x41ff04
jl 0x410388
jmp 0x4103b2
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x30], esi
mov eax, dword [ebx - 8]
mov dword [ebp - 0x24], eax
lea eax, [ebx - 0xc]
push eax
push dword [ebp - 0x58]
call fcn.0040750b
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x38]
push eax
push esi
push 0x104d
push dword [0x424f14]
call edi
and dword [ebp - 0x38], 0xfffffff9
inc dword [ebp - 0x30]
mov eax, dword [ebx]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x38]
push eax
push esi
push 0x104c
push dword [0x424f14]
call edi
push dword [ebp - 0x18]
call fcn.004074cc
push dword [0x41fee4]
mov dword [ebp - 0xc], eax
push dword [ebx]
call fcn.00415020
pop ecx
test eax, eax
pop ecx
jne 0x41044f
cmp dword [ebp - 0x18], esi
je 0x41044f
push dword [ebp - 0x18]
call fcn.0040f8f0
cmp eax, esi
mov dword [ebp - 8], eax
je 0x41044f
inc dword [ebp - 0x30]
mov eax, dword [eax + 4]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x38]
push eax
push esi
push 0x104c
push dword [0x424f14]
call edi
push dword [ebp - 8]
call fcn.00405081
push dword [0x41fedc]
push dword [ebx]
call fcn.00415020
pop ecx
test eax, eax
pop ecx
jne 0x410525
cmp dword [ebp - 0x18], esi
je 0x410525
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0xc]
call sub.VERSION.dll_GetFileVersionInfoSizeW
cmp eax, esi
mov dword [ebp - 4], eax
je 0x410525
push eax
call fcn.0040505d
cmp eax, esi
mov dword [ebp - 8], eax
je 0x410525
push eax
push dword [ebp - 4]
push dword [ebp - 0x54]
push dword [ebp - 0xc]
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x41051d
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x48]
push eax
push str.VarFileInfoTranslation
push dword [ebp - 8]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x41051d
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov ecx, eax
movzx eax, ax
shr ecx, 0x10
push ecx
push eax
lea eax, [ebp - 0x17c]
push str.StringFileInfo_04X_04XFileDescription
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x17c]
push eax
push dword [ebp - 8]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x41051d
mov eax, dword [ebp - 0x48]
inc dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x38]
push eax
push esi
push 0x104c
push dword [0x424f14]
call edi
push dword [ebp - 8]
call fcn.00405081
push dword [0x41fea4]
push dword [ebx]
call fcn.00415020
pop ecx
test eax, eax
pop ecx
jne 0x4105a7
cmp dword [ebp - 0x18], esi
je 0x4105a7
mov ecx, dword [ebp - 0x44]
cmp ecx, esi
je 0x4105a7
mov eax, dword [ebp - 0x3c]
cmp eax, esi
je 0x4105a7
mov dword [ebp - 4], ecx
mov dword [ebp - 8], eax
push dword [ebp - 0xc]
mov eax, dword [ebp - 4]
push dword [eax]
call fcn.00415020
pop ecx
test eax, eax
pop ecx
je 0x410572
dec dword [ebp - 8]
add dword [ebp - 4], 0x24
cmp dword [ebp - 8], esi
jne 0x410551
jmp 0x4105a7
mov eax, dword [ebp - 4]
push dword [eax + 4]
push dword [eax]
call fcn.00415020
pop ecx
test eax, eax
pop ecx
je 0x4105a7
mov eax, dword [ebp - 4]
mov dword [ebp - 0x30], 2
mov eax, dword [eax + 4]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x38]
push eax
push esi
push 0x104c
push dword [0x424f14]
call edi
push dword [0x41fe9c]
push dword [ebx]
call fcn.00415020
pop ecx
test eax, eax
pop ecx
jne 0x410659
cmp dword [ebp - 0x18], esi
je 0x410659
mov eax, dword [0x424f04]
cmp eax, esi
jne 0x4105de
call fcn.0040da77
mov eax, dword [0x424f04]
cmp eax, esi
je 0x410659
mov ecx, dword [eax]
add eax, 4
cmp ecx, esi
mov dword [ebp - 4], eax
jbe 0x410659
mov dword [ebp - 0xc], ecx
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 4
push eax
push esi
push 0x1005
push dword [0x424f14]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 1
jne 0x410650
cmp dword [ebp - 0x18], esi
je 0x410650
push dword [ebp - 0x18]
mov eax, dword [ebp - 4]
push dword [eax]
call fcn.00415020
pop ecx
test eax, eax
pop ecx
jne 0x410650
mov eax, dword [ebp - 4]
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x30], 2
mov eax, dword [eax + 4]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x38]
push eax
push esi
push 0x104c
push dword [0x424f14]
call edi
add dword [ebp - 4], 8
dec dword [ebp - 0xc]
jne 0x4105ed
push dword [0x41fefc]
push dword [ebx]
call fcn.00415020
pop ecx
test eax, eax
pop ecx
jne 0x410737
cmp dword [ebp - 0x18], esi
je 0x410737
push dword [ebx - 8]
call fcn.00414f0b
lea eax, [eax + eax - 0x12]
mov dword [esp], str._0x0_3e7_
mov dword [ebp - 0xc], eax
add eax, dword [ebx - 8]
push eax
call fcn.00415020
pop ecx
test eax, eax
pop ecx
jne 0x4106a5
mov eax, str.System
jmp 0x4106ff
mov eax, dword [ebp - 0xc]
push str._0x0_3e6_
add eax, dword [ebx - 8]
push eax
call fcn.00415020
pop ecx
test eax, eax
pop ecx
jne 0x4106c3
mov eax, str.Anonymous
jmp 0x4106ff
mov eax, dword [ebp - 0xc]
push str._0x0_3e5_
add eax, dword [ebx - 8]
push eax
call fcn.00415020
pop ecx
test eax, eax
pop ecx
jne 0x4106e1
mov eax, str.Local_Service
jmp 0x4106ff
mov eax, dword [ebp - 0xc]
push str._0x0_3e4_
add eax, dword [ebx - 8]
push eax
call fcn.00415020
neg eax
sbb eax, eax
pop ecx
not eax
pop ecx
and eax, str.Network_Service
cmp eax, esi
je 0x410737
inc dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x27c]
push str._s_logon_session
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x27c]
add esp, 0xc
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x38]
push eax
push esi
push 0x104c
push dword [0x424f14]
call edi
add ebx, 0x10
cmp word [ebx - 0xc], si
jne 0x41036a
push dword [ebp - 0x10]
call fcn.00405081
cmp dword [ebp - 0x44], esi
je 0x410760
push 0x8000
push esi
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
call fcn.0041012c
jmp 0x41076d
push esi
call fcn.0040f5ff
pop edi
pop esi
pop ebx
leave
ret