Function at 0x44344a
Capabilities:
Query service status
Start service

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffac0
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x10], eax
xor edx, edx
mov dword [ebp - 0x14], edx
mov esi, 0x69a1ac
lea edi, [ebp - 0x340]
mov ecx, 0x80
rep movsd dword es:[edi], dword [esi]
push SysReAllocString
push 0
push 0
call sub.ADVAPI32.DLL_OpenSCManagerW
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x443496
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0xc], eax
jmp 0x443674
lea eax, [ebp - 0x340]
push eax
push str.SYSTEMCurrentControlSetServices_s
lea edx, [ebp - 0x540]
push edx
call fcn.004c30e4
add esp, 0xc
lea ecx, [ebp - 0x1c]
push ecx
push 0x20019
push 0
lea eax, [ebp - 0x540]
push eax
push reloc.OLEAUT32.DLL_SysReAllocString
call sub.ADVAPI32.DLL_RegOpenKeyExA
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x4434e4
call fcn.0044317c
xor edx, edx
mov dl, al
mov dword [ebp - 8], edx
jmp 0x4434f3
mov dword [ebp - 8], 1
push dword [ebp - 0x1c]
call sub.ADVAPI32.DLL_RegCloseKey
cmp dword [ebp - 8], 0
je 0x4435b4
push 0x14
lea ecx, [ebp - 0x340]
push ecx
push dword [ebp - 0x14]
call sub.ADVAPI32.DLL_OpenServiceA
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x44359f
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x10]
call sub.ADVAPI32.DLL_QueryServiceStatus
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x443536
cmp dword [ebp - 0x38], 4
je 0x44358d
push 0
push 0
push dword [ebp - 0x10]
call sub.ADVAPI32.DLL_StartServiceW
test eax, eax
jne 0x44358d
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x420
je 0x44358d
cmp dword [ebp - 0xc], 0xb7
je 0x44358d
push dword [ebp - 0xc]
call sub.KERNEL32.DLL_SetLastError
cmp dword [ebp - 0x14], 0
je 0x443576
push dword [ebp - 0x14]
call sub.ADVAPI32.DLL_CloseServiceHandle
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0xc], eax
push dword [ebp - 0xc]
call sub.KERNEL32.DLL_SetLastError
xor eax, eax
jmp 0x443863
push dword [ebp - 0x10]
call sub.ADVAPI32.DLL_CloseServiceHandle
xor edx, edx
mov dword [ebp - 0x10], edx
jmp 0x443674
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0xc], eax
push dword [ebp - 0xc]
call sub.KERNEL32.DLL_SetLastError
jmp 0x443674
cmp dword [ebp - 0x18], 0
je 0x4435c8
call fcn.0044317c
xor ecx, ecx
mov cl, al
mov dword [ebp - 8], ecx
jmp 0x4435cf
mov dword [ebp - 8], 1
cmp dword [ebp - 8], 0
je 0x443674
push 0x10
lea eax, [ebp - 0x340]
push eax
push dword [ebp - 0x14]
call sub.ADVAPI32.DLL_OpenServiceA
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x443664
lea edx, [ebp - 0x3c]
push edx
push dword [ebp - 0x10]
call sub.ADVAPI32.DLL_QueryServiceStatus
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x44360e
cmp dword [ebp - 0x38], 4
je 0x443655
push 0
push 0
push dword [ebp - 0x10]
call sub.ADVAPI32.DLL_StartServiceW
test eax, eax
jne 0x443655
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x420
je 0x443655
cmp dword [ebp - 0xc], 0xb7
je 0x443655
cmp dword [ebp - 0x14], 0
je 0x443646
push dword [ebp - 0x14]
call sub.ADVAPI32.DLL_CloseServiceHandle
push dword [ebp - 0xc]
call sub.KERNEL32.DLL_SetLastError
xor eax, eax
jmp 0x443863
push dword [ebp - 0x10]
call sub.ADVAPI32.DLL_CloseServiceHandle
xor edx, edx
mov dword [ebp - 0x10], edx
jmp 0x443674
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0xc], eax
push dword [ebp - 0xc]
call sub.KERNEL32.DLL_SetLastError
cmp dword [ebp - 0x14], 0
je 0x443682
push dword [ebp - 0x14]
call sub.ADVAPI32.DLL_CloseServiceHandle
push 0x164
push 0x42
call sub.KERNEL32.DLL_GlobalAlloc
push eax
call sub.KERNEL32.DLL_GlobalLock
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x4436b4
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0xc], eax
push dword [ebp - 0xc]
call sub.KERNEL32.DLL_SetLastError
xor eax, eax
jmp 0x443863
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], 1
call sub.KERNEL32.DLL_GetVersion
and ax, 0xffff
cmp ax, 4
jne 0x443729
push dword [ebp + 8]
call fcn.004c08dc
pop ecx
mov ebx, eax
push 0x69a64d
call fcn.004c08dc
pop ecx
cmp ebx, eax
jbe 0x443711
push 0x69a65d
call fcn.004c08dc
pop ecx
add eax, dword [ebp + 8]
push eax
push str.._s
push 0x104
lea eax, [ebp - 0x140]
push eax
call fcn.00442e06
add esp, 0x10
jmp 0x443783
push 0x104
push 0
lea edx, [ebp - 0x140]
push edx
call fcn.004c072c
add esp, 0xc
jmp 0x443783
push dword [ebp + 8]
call fcn.004c08dc
pop ecx
mov ebx, eax
push 0x69a666
call fcn.004c08dc
pop ecx
cmp ebx, eax
jbe 0x44376d
push str.Device_
call fcn.004c08dc
pop ecx
add eax, dword [ebp + 8]
push eax
push str..Global_s
push 0x104
lea eax, [ebp - 0x140]
push eax
call fcn.00442e06
add esp, 0x10
jmp 0x443783
push 0x104
push 0
lea edx, [ebp - 0x140]
push edx
call fcn.004c072c
add esp, 0xc
push 0x40
push 0
mov ecx, dword [ebp - 4]
add ecx, 4
push ecx
call fcn.004c072c
add esp, 0xc
push 0
push 0
push 3
push 0
push 0
push 0xc0000000
lea eax, [ebp - 0x140]
push eax
call sub.KERNEL32.DLL_CreateFileA
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx], 0xffffffff
je 0x443835
push dword [ebp - 4]
call fcn.004430f2
pop ecx
test al, al
jne 0x443805
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
push dword [eax]
call sub.KERNEL32.DLL_CloseHandle
push dword [ebp - 4]
call sub.KERNEL32.DLL_GlobalHandle
push eax
call sub.KERNEL32.DLL_GlobalUnlock
push dword [ebp - 4]
call sub.KERNEL32.DLL_GlobalHandle
push eax
call sub.KERNEL32.DLL_GlobalFree
push dword [ebp - 0xc]
call sub.KERNEL32.DLL_SetLastError
xor eax, eax
jmp 0x443863
push dword [ebp - 4]
call fcn.00443061
pop ecx
mov edx, dword [ebp - 4]
xor ecx, ecx
mov dword [edx + 0x160], ecx
push dword [ebp + 8]
push 0x10c
mov eax, dword [ebp - 4]
add eax, 0x50
push eax
call fcn.00442e88
add esp, 0xc
mov eax, dword [ebp - 4]
jmp 0x443863
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0xc], eax
push dword [ebp - 4]
call sub.KERNEL32.DLL_GlobalHandle
push eax
call sub.KERNEL32.DLL_GlobalUnlock
push dword [ebp - 4]
call sub.KERNEL32.DLL_GlobalHandle
push eax
call sub.KERNEL32.DLL_GlobalFree
push dword [ebp - 0xc]
call sub.KERNEL32.DLL_SetLastError
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret