Function at 0x140040300
Capabilities:
Delete service

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rdi
sub rsp, 0xc0
mov rdi, qword [0x140fb4ac8]
xor edx, edx
vmovaps xmmword [rax - 0x18], xmm6
xor ecx, ecx
vmovaps xmmword [rax - 0x28], xmm7
vmovaps xmmword [rax - 0x38], xmm8
vmovaps xmmword [rax - 0x48], xmm9
lea r8d, [rdx + 2]
vmovaps xmmword [rax - 0x58], xmm10
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov rbx, rax
lea rcx, [rax - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x140040551
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
jne 0x140040538
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x430
jne 0x14004037c
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov al, 1
jmp 0x1400406f3
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, word [0x1400614f8]
xor r8d, r8d
vmovups ymm0, ymmword [0x1400614d0]
vmovsd xmm1, qword [0x1400614f0]
vmovdqu xmm7, xmmword [0x140061ed0]
vmovdqu xmm6, xmmword [0x140061ff0]
vmovdqu xmm9, xmmword [0x140061f60]
mov r10d, eax
mov word [rsp + 0x58], cx
movzx ecx, byte [0x1400614fa]
mov eax, 4
vmovups ymmword [rsp + 0x30], ymm0
vmovdqu xmm0, xmmword [0x140061fe0]
vmovd xmm8, eax
mov eax, 0x1f
mov byte [rsp + 0x5a], cl
vmovdqu xmmword [rsp + 0x20], xmm0
mov edx, dword [rsp + 0x20]
lea rcx, [rsp + 0x34]
vmovd xmm10, eax
vmovsd qword [rsp + 0x50], xmm1
nop dword [rax]
vmovd xmm0, r8d
vpshufd xmm0, xmm0, 0
vpaddd xmm5, xmm0, xmm7
vpunpckldq xmm0, xmm5, xmm5
vpmuldq xmm3, xmm0, xmm6
vpunpckhdq xmm1, xmm5, xmm5
vpmuldq xmm2, xmm1, xmm6
vshufps xmm0, xmm3, xmm2, 0xdd
vpsrad xmm4, xmm0, xmm8
vpsrld xmm0, xmm4, xmm10
vpaddd xmm1, xmm0, xmm4
vmovd xmm0, dword [rcx - 4]
vpmulld xmm2, xmm1, xmm9
vpsubd xmm3, xmm5, xmm2
vpshufb xmm4, xmm3, xmmword [0x140061e90]
vmovd xmm1, edx
vpaddb xmm2, xmm4, xmm1
vpxor xmm1, xmm2, xmm0
vmovd dword [rcx - 4], xmm1
lea eax, [r8 + 4]
add r8d, 8
lea rcx, [rcx + 8]
vmovd xmm0, eax
vpshufd xmm0, xmm0, 0
vpaddd xmm5, xmm0, xmm7
vpunpckldq xmm0, xmm5, xmm5
vpmuldq xmm3, xmm0, xmm6
vpunpckhdq xmm1, xmm5, xmm5
vpmuldq xmm2, xmm1, xmm6
vshufps xmm0, xmm3, xmm2, 0xdd
vpsrad xmm4, xmm0, xmm8
vpsrld xmm1, xmm4, xmm10
vpaddd xmm0, xmm1, xmm4
vpmulld xmm2, xmm0, xmm9
vmovd xmm0, edx
vpsubd xmm3, xmm5, xmm2
vpshufb xmm4, xmm3, xmmword [0x140061e90]
vpaddb xmm1, xmm4, xmm0
vmovd xmm0, dword [rcx - 8]
vpxor xmm1, xmm1, xmm0
vmovd dword [rcx - 8], xmm1
cmp r8d, 0x28
jl 0x140040400
cmp r8d, 0x2b
jge 0x140040511
movsxd rax, r8d
lea r9, [rsp + 0x30]
add r9, rax
nop dword [rax]
mov eax, 0x4bda12f7
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x36
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x30
xor byte [r9 - 1], al
cmp r8d, 0x2b
jl 0x1400404e0
mov edx, r10d
lea rcx, [rsp + 0x30]
vzeroupper
call fcn.1400036e0
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x1400406f1
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov al, 1
jmp 0x1400406f3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x140061458]
xor r8d, r8d
vmovups ymm0, ymmword [0x140061428]
vmovups xmm1, xmmword [0x140061448]
vmovdqu xmm7, xmmword [0x140061ed0]
vmovdqu xmm6, xmmword [0x140061ff0]
vmovdqu xmm9, xmmword [0x140061f60]
mov r10d, eax
mov dword [rsp + 0x60], ecx
movzx ecx, word [0x14006145c]
mov eax, 4
vmovups ymmword [rsp + 0x30], ymm0
vmovdqu xmm0, xmmword [0x140061fe0]
vmovd xmm8, eax
mov eax, 0x1f
mov word [rsp + 0x64], cx
vmovdqu xmmword [rsp + 0x20], xmm0
mov edx, dword [rsp + 0x20]
lea rcx, [rsp + 0x34]
vmovd xmm10, eax
vmovups xmmword [rsp + 0x50], xmm1
vmovd xmm0, r8d
vpshufd xmm0, xmm0, 0
vpaddd xmm5, xmm0, xmm7
vpunpckldq xmm0, xmm5, xmm5
vpmuldq xmm3, xmm0, xmm6
vpunpckhdq xmm1, xmm5, xmm5
vpmuldq xmm2, xmm1, xmm6
vshufps xmm0, xmm3, xmm2, 0xdd
vpsrad xmm4, xmm0, xmm8
vpsrld xmm0, xmm4, xmm10
vpaddd xmm1, xmm0, xmm4
vmovd xmm0, dword [rcx - 4]
vpmulld xmm2, xmm1, xmm9
vpsubd xmm3, xmm5, xmm2
vpshufb xmm4, xmm3, xmmword [0x140061e90]
vmovd xmm1, edx
vpaddb xmm2, xmm4, xmm1
vpxor xmm1, xmm2, xmm0
vmovd dword [rcx - 4], xmm1
lea eax, [r8 + 4]
add r8d, 8
lea rcx, [rcx + 8]
vmovd xmm0, eax
vpshufd xmm0, xmm0, 0
vpaddd xmm5, xmm0, xmm7
vpunpckldq xmm0, xmm5, xmm5
vpmuldq xmm3, xmm0, xmm6
vpunpckhdq xmm1, xmm5, xmm5
vpmuldq xmm2, xmm1, xmm6
vshufps xmm0, xmm3, xmm2, 0xdd
vpsrad xmm4, xmm0, xmm8
vpsrld xmm1, xmm4, xmm10
vpaddd xmm0, xmm1, xmm4
vpmulld xmm2, xmm0, xmm9
vmovd xmm0, edx
vpsubd xmm3, xmm5, xmm2
vpshufb xmm4, xmm3, xmmword [0x140061e90]
vpaddb xmm1, xmm4, xmm0
vmovd xmm0, dword [rcx - 8]
vpxor xmm1, xmm1, xmm0
vmovd dword [rcx - 8], xmm1
cmp r8d, 0x30
jl 0x1400405d0
cmp r8d, 0x36
jge 0x1400406e1
movsxd rax, r8d
lea r9, [rsp + 0x30]
add r9, rax
nop dword [rax]
mov eax, 0x4bda12f7
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x36
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x30
xor byte [r9 - 1], al
cmp r8d, 0x36
jl 0x1400406b0
mov edx, r10d
lea rcx, [rsp + 0x30]
vzeroupper
call fcn.1400036e0
xor al, al
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x10]
vmovaps xmm6, xmmword [r11 - 0x10]
vmovaps xmm7, xmmword [r11 - 0x20]
vmovaps xmm8, xmmword [r11 - 0x30]
vmovaps xmm9, xmmword [r11 - 0x40]
vmovaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop rdi
ret