Function at 0x1001862f
Capabilities:
Accept command line arguments
Modify service

Disassembly:
mov eax, 0x10079ad7
call fcn.10079240
sub esp, 0x60
push ebx
push esi
xor esi, esi
mov dword [ebp - 0x30], ecx
push edi
inc esi
mov dword [ebp - 0x34], edx
push esi
lea ecx, [ebp - 0x48]
call fcn.100164e9
xor ebx, ebx
mov dword [ebp - 0x14], 0x83c7730f
mov dword [ebp - 0x20], ebx
jmp 0x1001866f
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
mov dword [eax + ecx*4], 0xfffffffc
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x1001865f
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10018699
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x1b35
push 0x26ed
push 0x1332
push ebx
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
mov dword [ebp - 0x14], ebx
jmp 0x100186b0
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x1001869e
lea ecx, [ebp - 0x48]
call fcn.1001656b
cmp byte [ebp + 0xc], bl
je 0x1001883b
push 4
lea ecx, [ebp - 0x6c]
call fcn.100164e9
push 2
pop edi
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x60]
mov dword [ebp + 0xc], esi
push edi
call fcn.100164e9
mov dword [ebp + 0xc], ebx
jmp 0x100186f7
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x6c]
mov dword [eax + ecx*4], 6
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 4
jl 0x100186e7
mov dword [ebp + 0xc], ebx
jmp 0x10018712
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x60]
mov dword [eax + ecx*4], 0xb8c3ad3b
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], edi
jl 0x10018702
mov dword [ebp + 0xc], 3
cmp dword [ebp + 0xc], ebx
jl 0x1001873c
mov dword [ebp - 0x20], 0x77c8748a
mov dword [ebp - 0x1c], 0x62ee6d05
inc dword [ebp - 0x20]
inc dword [ebp - 0x1c]
dec dword [ebp + 0xc]
jns 0x10018723
lea ecx, [ebp - 0x60]
call fcn.1001656b
lea ecx, [ebp - 0x6c]
call fcn.1001656b
mov dword [ebp + 0xc], 0x3c692bea
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], 0
je 0x1001876a
push ebx
push esi
push 0x807
push ebx
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], 0
je 0x10018779
call dword [sym.imp.USER32.dll_GetMessageTime]
mov dword [ebp - 0x18], edi
mov dword [ebp + 0xc], 0xffffffff
push 6
mov dword [ebp - 0x14], 0x831d26ec
pop ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp + 0xc], ebx
jmp 0x1001879f
mov eax, dword [ebp + 0xc]
mov dword [ebp + eax*4 - 0x24], ecx
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], esi
jl 0x10018795
mov dword [ebp + 0xc], ebx
jmp 0x100187b7
mov eax, dword [ebp + 0xc]
mov dword [ebp + eax*4 - 0x3c], 0xfffffff9
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], edi
jl 0x100187a9
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
inc dword [ebp - 0x14]
cmp eax, 0xffffffff
mov eax, esi
cmove eax, ebx
mov dword [ebp - 0x24], eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + 0xc]
cmp dword [ebp - 0x14], ebx
je 0x100187ed
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
sub edx, 0xfffe2102
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
add ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp + 0xc]
jne 0x10018817
cmp dword [ebp - 0x14], ebx
jne 0x10018817
mov esi, ebx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp esi, 0x4752
sete dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp + 8]
setle cl
mov dword [ebp - 0x24], ecx
mov eax, dword [eax]
mov dword [eax], ebx
jmp 0x10018b3c
push 3
pop edi
mov dword [ebp + 0xc], edi
mov dword [ebp + 0xc], ebx
jmp 0x10018854
mov eax, dword [ebp + 0xc]
mov dword [ebp + eax*4 - 0x28], 0x8ec0ae97
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], esi
jl 0x10018846
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], bl
je 0x10018869
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp + 0xc], ebx
jmp 0x1001887c
mov eax, dword [ebp + 0xc]
mov dword [ebp + eax*4 - 0x28], 0xa136951a
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], esi
jl 0x1001886e
mov dword [ebp + 0xc], 0x643c
mov dword [ebp - 0x1c], 8
mov dword [ebp - 0x18], 0xed3c15d0
mov dword [ebp - 0x18], 0xfd06bde6
mov dword [ebp - 0x20], 0xb1a7a81a
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp eax, edx
setl cl
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], ebx
jne 0x100188da
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0xc], ebx
je 0x100188d0
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, ebx
cmp dword [ebp + 0xc], eax
jge 0x100188dc
mov ecx, esi
xor eax, eax
test ecx, ecx
setle al
xor ecx, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
cmp eax, 0x1e707165
setle cl
imul ecx, dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x18]
test eax, eax
je 0x100189a4
mov dword [ebp - 0x14], 0xa41b8700
mov dword [ebp - 0x20], 0xfffffff9
mov dword [ebp - 0x2c], 0x6c8c
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x18], ebx
je 0x10018936
mov edi, esi
cmp dword [ebp + 0xc], ebx
jne 0x10018938
mov edi, ebx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
cmp eax, 0x56cd219f
setge cl
xor edx, edx
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x14]
setge dl
sub edx, 0xe34f
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setle dl
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x18], 0xfffffffd
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
setg dl
mov dword [ebp - 0x18], edx
jmp 0x10018a20
mov dword [ebp - 0x1c], 0xfc5c2da5
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x14], 0xfffffff7
push edi
call fcn.100164e9
mov dword [ebp + 0xc], ebx
jmp 0x100189d0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x54]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], edi
jl 0x100189c0
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x1c]
cmp eax, esi
jl 0x100189ed
mov eax, esi
cmp dword [ebp - 0x14], ebx
jne 0x100189ef
mov eax, ebx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x18], eax
je 0x10018a07
mov eax, esi
cmp dword [ebp - 0x1c], ebx
jne 0x10018a09
mov eax, ebx
imul ecx, eax, 0xfff7
add ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x54]
mov dword [eax + 8], ecx
lea ecx, [ebp - 0x54]
call fcn.1001656b
mov dword [ebp - 0x14], 0xbc6e5c7a
mov dword [ebp - 0x1c], 0x54bcd76c
mov dword [ebp - 0x18], 0xfffffffd
cmp dword [ebp - 0x14], ebx
je 0x10018a4a
mov eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
neg eax
cmp eax, 0xffffffff
mov eax, esi
jg 0x10018a4c
mov eax, ebx
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
imul ecx, eax
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setne dl
add edx, dword [ebp - 0x18]
je 0x10018a7c
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
jmp 0x10018b0f
xor ecx, ecx
mov byte [ebp + 0xf], cl
cmp byte [ebp + 0xf], cl
je 0x10018aa4
push 0x133
push ecx
push ecx
push ecx
push ecx
push 0x21bf
push 0x2143
call ebx
push eax
call dword [sym.imp.USER32.dll_ScrollWindowEx]
xor ecx, ecx
mov dword [ebp - 0x18], 0xffffffe5
cmp dword [ebp - 0x18], 0xffffffed
jle 0x10018b0f
push 2
pop edi
mov dword [ebp - 0x20], 0xfffffffe
cmp dword [ebp - 0x20], ecx
je 0x10018ac7
mov eax, esi
cmp dword [ebp - 0x1c], ecx
jne 0x10018ac9
mov eax, ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], 0xffffffe6
jmp 0x10018b00
mov dword [ebp - 0x14], ecx
jmp 0x10018af8
mov byte [ebp + 0xf], cl
cmp byte [ebp + 0xf], 0
je 0x10018af5
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
xor ecx, ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10018ada
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1f
jl 0x10018ad5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffed
jg 0x10018ab4
xor eax, eax
mov byte [ebp + 0xf], al
cmp byte [ebp + 0xf], al
je 0x10018b30
push 0x24bf
push eax
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_PolyPolyline]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret