Function at 0x100a024
Capabilities:
Create service
Modify service

Disassembly:
push 0x24c
mov eax, 0x101749b
call fcn.0100b71c
xor edi, edi
push edi
call fcn.01009e39
mov ebx, eax
cmp ebx, edi
jl 0x100a29f
jne 0x100a052
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, 0x1005530
mov dword [ebp - 0x22c], esi
push 0xf003f
push edi
push edi
mov dword [ebp - 4], edi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0x228], eax
cmp eax, edi
je 0x100a263
xor eax, eax
push 0x206
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x103
lea eax, [ebp - 0x218]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0x220], edi
mov dword [ebp - 0x224], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x6e
push edi
mov byte [ebp - 4], 1
call esi
push eax
call fcn.01009c68
mov ebx, eax
mov dword [ebp - 0x21c], ebx
cmp ebx, edi
jne 0x100a0de
mov eax, 0x100a2b8
push edi
push edi
push 0x100a2a8
push edi
push edi
lea ecx, [ebp - 0x218]
push ecx
push 1
push 3
push 0x10
push 0xf01ff
push eax
push dword [0x101f1d0]
push dword [ebp - 0x228]
call dword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov dword [ebp - 0x220], eax
cmp eax, edi
je 0x100a1ff
push 0x6f
push edi
mov ebx, 0x8007000e
call esi
push eax
call fcn.01009c68
mov dword [ebp - 0x230], eax
mov edi, 0xffff
lea esi, [ebx - 0xe]
test eax, eax
je 0x100a190
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x234]
push eax
push 1
push dword [ebp - 0x220]
xor ebx, ebx
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
test eax, eax
jne 0x100a184
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
test eax, eax
jle 0x100a16f
and eax, edi
or eax, esi
test eax, eax
jge 0x100a17f
call ebx
test eax, eax
jle 0x100a17b
and eax, edi
or eax, esi
mov ebx, eax
jmp 0x100a184
mov ebx, 0x80004005
push dword [ebp - 0x230]
call fcn.0100b675
pop ecx
and dword [ebp - 0x254], 0
and dword [ebp - 0x250], 0
xor ecx, ecx
inc ecx
mov dword [ebp - 0x244], ecx
mov dword [ebp - 0x23c], ecx
push 2
mov eax, 0xea60
lea ecx, [ebp - 0x244]
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x238], eax
pop eax
mov dword [ebp - 0x248], ecx
lea ecx, [ebp - 0x258]
push ecx
push eax
push dword [ebp - 0x220]
mov dword [ebp - 0x258], 0x15180
mov dword [ebp - 0x24c], eax
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
test eax, eax
jne 0x100a241
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
jmp 0x100a222
cmp ebx, edi
je 0x100a210
push ebx
call fcn.0100b675
pop ecx
mov dword [ebp - 0x21c], edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
mov edi, 0xffff
mov esi, 0x80070000
test eax, eax
jle 0x100a22c
and eax, edi
or eax, esi
test eax, eax
jge 0x100a23c
call ebx
test eax, eax
jle 0x100a238
and eax, edi
or eax, esi
mov ebx, eax
jmp 0x100a241
mov ebx, 0x80004005
cmp dword [ebp - 0x21c], 0
je 0x100a256
push dword [ebp - 0x21c]
call fcn.0100b675
pop ecx
lea ecx, [ebp - 0x224]
call fcn.010098a1
jmp 0x100a294
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
mov edi, 0xffff
mov esi, 0x80070000
test eax, eax
jle 0x100a27f
and eax, edi
or eax, esi
test eax, eax
jge 0x100a28f
call ebx
test eax, eax
jle 0x100a28b
and eax, edi
or eax, esi
mov ebx, eax
jmp 0x100a294
mov ebx, 0x80004005
lea ecx, [ebp - 0x22c]
call fcn.010098a1
mov eax, ebx
call fcn.0100b759
ret