Function at 0x100f5994
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1ac
push ebx
push esi
push edi
push ecx
lea edi, [ebp - 0xec]
mov ecx, 0x3b
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
pop ecx
mov eax, dword [0x1026e0c4]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], ecx
mov ecx, 0x1027ae68
call fcn.100b4b5e
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
mov al, byte [edx + ecx]
mov byte [ebp - 0x15], al
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp - 0x24], eax
movzx eax, byte [ebp - 0x15]
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x1ac]
sub ecx, 1
mov dword [ebp - 0x1ac], ecx
cmp dword [ebp - 0x1ac], 3
ja case.default.0x100f583d
mov edx, dword [ebp - 0x1ac]
jmp dword [edx*4 + 0x100f5bec]
mov esi, esp
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x100f58c7
mov esi, esp
push 0xf01ff
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x100f58b4
mov esi, esp
push 0
push 0
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
cmp esi, esp
call fcn.100b3029
mov esi, esp
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp esi, esp
call fcn.100b3029
mov esi, esp
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp esi, esp
call fcn.100b3029
mov esi, esp
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, esp
call fcn.100b3029
mov ecx, dword [ebp - 0xc]
call fcn.100b4ded
jmp case.default.0x100f583d
mov esi, esp
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x100f5973
mov esi, esp
push 0xf01ff
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x48]
push ecx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
je 0x100f5960
mov esi, esp
lea eax, [ebp - 0x78]
push eax
push 1
mov ecx, dword [ebp - 0x54]
push ecx
call dword [sym.imp.ADVAPI32.dll_ControlService]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0x84], eax
mov esi, esp
mov eax, dword [ebp - 0x54]
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp esi, esp
call fcn.100b3029
mov esi, esp
mov eax, dword [ebp - 0x48]
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp esi, esp
call fcn.100b3029
mov esi, esp
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, esp
call fcn.100b3029
mov ecx, dword [ebp - 0xc]
call fcn.100b4ded
jmp case.default.0x100f583d
mov esi, esp
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x100f5a7b
mov esi, esp
push 0xf01ff
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x90]
push ecx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
je 0x100f5a65
mov esi, esp
mov eax, dword [ebp - 0x90]
push eax
call dword [sym.imp.ADVAPI32.dll_LockServiceDatabase]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0xa8], eax
mov esi, esp
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push 2
push 0xffffffffffffffff
mov eax, dword [ebp - 0x9c]
push eax
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigA]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0xb4], eax
mov esi, esp
mov eax, dword [ebp - 0xa8]
push eax
call dword [sym.imp.ADVAPI32.dll_UnlockServiceDatabase]
cmp esi, esp
call fcn.100b3029
mov esi, esp
mov eax, dword [ebp - 0x9c]
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp esi, esp
call fcn.100b3029
mov esi, esp
mov eax, dword [ebp - 0x90]
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp esi, esp
call fcn.100b3029
mov esi, esp
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, esp
call fcn.100b3029
mov ecx, dword [ebp - 0xc]
call fcn.100b4ded
jmp case.default.0x100f583d
mov esi, esp
push 2
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0
je 0x100f5b80
mov esi, esp
push 0xf01ff
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0xc0]
push ecx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0
je 0x100f5b6a
mov esi, esp
mov eax, dword [ebp - 0xc0]
push eax
call dword [sym.imp.ADVAPI32.dll_LockServiceDatabase]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0xd8], eax
mov esi, esp
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push 3
push 0xffffffffffffffff
mov eax, dword [ebp - 0xcc]
push eax
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigA]
cmp esi, esp
call fcn.100b3029
mov dword [ebp - 0xe4], eax
mov esi, esp
mov eax, dword [ebp - 0xd8]
push eax
call dword [sym.imp.ADVAPI32.dll_UnlockServiceDatabase]
cmp esi, esp
call fcn.100b3029
mov esi, esp
mov eax, dword [ebp - 0xcc]
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp esi, esp
call fcn.100b3029
mov esi, esp
mov eax, dword [ebp - 0xc0]
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp esi, esp
call fcn.100b3029
mov esi, esp
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, esp
call fcn.100b3029
mov ecx, dword [ebp - 0xc]
call fcn.100b4ded
push edx
mov ecx, ebp
push eax
lea edx, [0x100f5bd0]
call fcn.100b2642
pop eax
pop edx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b16e8
add esp, 0x1ac
cmp ebp, esp
call fcn.100b3029
mov esp, ebp
pop ebp
ret 8