Function at 0x140116730
Capabilities:
Persist via windows service
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x50]
sub rsp, 0x150
mov rax, qword [0x140672360]
xor rax, rsp
mov qword [rbp + 0x40], rax
mov r14d, edx
xor r12d, r12d
mov esi, r12d
mov dword [rbp - 0x58], r12d
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x40], r12
mov qword [rbp - 0x38], 7
mov word [rbp - 0x50], r12w
lea r8d, [r12 + 0x22]
lea rdx, str.SystemCurrentControlSetServices_
lea rcx, [rbp - 0x50]
call fcn.1400739a0
nop
mov rcx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x38]
sub rax, rcx
lfence
cmp rax, 8
jb 0x1401167e4
mov rdi, qword [rbp - 0x40]
add rdi, 8
mov qword [rbp - 0x40], rdi
lea rbx, [rbp - 0x50]
cmp qword [rbp - 0x38], 8
cmovae rbx, qword [rbp - 0x50]
lea rcx, [rbx + rcx*2]
lea r8d, [r12 + 0x10]
lea rdx, str.hmpalert
call fcn.14035bc80
mov word [rbx + rdi*2], r12w
jmp 0x140116802
mov qword [rsp + 0x20], 8
lea r9, str.hmpalert
mov edx, 8
lea rcx, [rbp - 0x50]
call fcn.1400735a0
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movdqu xmmword [rbp + 0x10], xmm0
movdqa xmm1, xmmword [0x14060af30]
movdqu xmmword [rbp + 0x28], xmm1
mov word [rbp + 0x18], r12w
mov dword [rbp + 0x38], 2
lea rdx, [rbp - 0x50]
cmp qword [rbp - 0x38], 8
cmovae rdx, qword [rbp - 0x50]
mov r8, qword [rbp - 0x40]
lea rcx, [rbp + 0x18]
call fcn.1400739a0
lea rdx, [rbp - 0x50]
cmp qword [rbp - 0x38], 8
cmovae rdx, qword [rbp - 0x50]
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
mov r9d, 0xf013f
xor r8d, r8d
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
nop
cmp qword [rbp + 0x10], 0
jne 0x1401169b2
lea rax, str.0cg_
mov rcx, qword [str.0cg_]
cmp rcx, rax
je 0x140116964
test byte [rcx + 0x1c], 1
je 0x140116964
cmp byte [rcx + 0x19], 4
jb 0x140116964
mov rdi, qword [rbp + 0x28]
lea rsi, [rbp + 0x18]
cmp qword [rbp + 0x30], 8
cmovae rsi, qword [rbp + 0x18]
cmp rdi, 8
jae 0x1401168d9
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x68], xmm0
mov qword [rbp - 0x80], 7
lea r9, [rsp + 0x68]
jmp 0x140116945
mov rbx, rdi
or rbx, 7
movabs r15, 0x7ffffffffffffffe
cmp rbx, r15
cmova rbx, r15
lea rcx, [rbx + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x140116e05
lfence
add rcx, rcx
call fcn.140073800
mov qword [rsp + 0x68], rax
lea r8, [rdi*2 + 2]
mov rdx, rsi
mov rcx, rax
call fcn.14035bc80
mov qword [rbp - 0x80], rbx
lea r9, [rsp + 0x68]
cmp rbx, 8
cmovae r9, qword [rsp + 0x68]
mov rcx, qword [str.0cg_]
mov qword [rsp + 0x78], rdi
mov edx, 0x19
lea r8, [0x1405fa6c0]
mov rcx, qword [rcx + 0x10]
call fcn.1400786c0
mov esi, 5
test sil, 1
je 0x1401169ab
mov rdx, qword [rbp - 0x80]
cmp rdx, 8
jb 0x1401169ab
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401169a6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140116e0b
call fcn.140359090
xor bl, bl
jmp 0x140116d76
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], 7
mov word [rsp + 0x48], r12w
mov r8d, 5
lea rdx, str.Start
lea rcx, [rsp + 0x48]
call fcn.1400739a0
nop
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x30], xmm1
mov qword [rsp + 0x40], r12
mov ecx, 4
call fcn.1403590cc
mov qword [rsp + 0x30], rax
lea rcx, [rax + 4]
mov qword [rsp + 0x40], rcx
xor edx, edx
mov dword [rax], edx
mov qword [rsp + 0x38], rcx
mov rax, qword [rsp + 0x30]
mov dword [rax], r14d
mov qword [rbp - 0x30], r12
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x20], xmm0
lea rsi, [rsp + 0x48]
mov r14, qword [rsp + 0x48]
mov r13, qword [rsp + 0x60]
cmp r13, 8
cmovae rsi, r14
movabs rax, 0x7fffffffffffffff
movabs r15, 0x7ffffffffffffffe
mov rdi, qword [rsp + 0x58]
cmp rdi, 8
jae 0x140116a84
movups xmm0, xmmword [rsi]
movaps xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x18], 7
jmp 0x140116ad5
or rdi, 7
cmp rdi, r15
cmova rdi, r15
lea rcx, [rdi + 1]
cmp rcx, rax
ja 0x140116e11
lfence
add rcx, rcx
call fcn.140073800
mov qword [rbp - 0x30], rax
mov rbx, qword [rsp + 0x58]
lea r8, [rbx*2 + 2]
mov rdx, rsi
mov rcx, rax
call fcn.14035bc80
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], rdi
mov r13, qword [rsp + 0x60]
mov r14, qword [rsp + 0x48]
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x10], xmm0
mov qword [rbp], r12
mov rsi, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
cmp rsi, r12
je 0x140116b2f
mov rbx, r12
sub rbx, rsi
mov rcx, rbx
call fcn.140073800
mov rdi, rax
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rax
lea rcx, [rax + rbx]
mov qword [rbp], rcx
mov r8, rbx
mov rdx, rsi
mov rcx, rax
call fcn.14035bc80
sub rdi, rsi
lea rax, [rdi + r12]
mov qword [rbp - 8], rax
mov rsi, qword [rsp + 0x30]
mov dword [rbp + 8], 4
test rsi, rsi
je 0x140116b83
mov rdx, qword [rsp + 0x40]
sub rdx, rsi
mov rax, rsi
cmp rdx, 0x1000
jb 0x140116b68
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140116e17
mov rcx, rsi
call fcn.140359090
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
xor r12d, r12d
mov qword [rsp + 0x40], r12
jmp 0x140116b86
xor r12d, r12d
cmp r13, 8
jb 0x140116bc1
lea rdx, [r13*2 + 2]
mov rax, r14
cmp rdx, 0x1000
jb 0x140116bb9
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140116e1d
mov rcx, r14
call fcn.140359090
mov rcx, qword [rbp - 8]
mov rax, qword [rbp - 0x10]
sub rcx, rax
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae rdx, qword [rbp - 0x30]
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 8]
xor r8d, r8d
mov rcx, qword [rbp + 0x10]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov r14d, eax
test eax, eax
je 0x140116d24
lea rax, str.0cg_
mov rcx, qword [str.0cg_]
cmp rcx, rax
je 0x140116d20
test byte [rcx + 0x1c], 1
je 0x140116d20
cmp byte [rcx + 0x19], 4
jb 0x140116d20
mov rdi, qword [rbp + 0x28]
lea rsi, [rbp + 0x18]
cmp qword [rbp + 0x30], 8
cmovae rsi, qword [rbp + 0x18]
cmp rdi, 8
jae 0x140116c57
movups xmm0, xmmword [rsi]
movups xmmword [rbp - 0x78], xmm0
mov qword [rbp - 0x60], 7
lea rax, [rbp - 0x78]
jmp 0x140116cb6
mov rbx, rdi
or rbx, 7
cmp rbx, r15
cmova rbx, r15
lea rcx, [rbx + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x140116e23
lfence
add rcx, rcx
call fcn.140073800
mov qword [rbp - 0x78], rax
lea r8, [rdi*2 + 2]
mov rdx, rsi
mov rcx, rax
call fcn.14035bc80
mov qword [rbp - 0x60], rbx
lea rax, [rbp - 0x78]
cmp rbx, 8
cmovae rax, qword [rbp - 0x78]
mov rcx, qword [str.0cg_]
mov qword [rbp - 0x68], rdi
mov edx, 0x1a
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rax
lea r9, str.Start
lea r8, [0x1405fa6c0]
mov rcx, qword [rcx + 0x10]
call fcn.140084db0
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x140116d20
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140116d1b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140116e29
call fcn.140359090
xor bl, bl
jmp 0x140116d26
mov bl, 1
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x140116d6c
mov rdx, qword [rbp]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140116d5b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140116e2f
call fcn.140359090
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x10], xmm0
mov qword [rbp], r12
lea rcx, [rbp - 0x30]
call fcn.140073b90
nop
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x140116d89
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rbp + 0x10], r12
lea rcx, [rbp + 0x18]
call fcn.140073b90
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, 8
jb 0x140116dcf
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140116dca
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140116dff
call fcn.140359090
movzx eax, bl
mov rcx, qword [rbp + 0x40]
xor rcx, rsp
call fcn.140359070
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.140368068
nop
call fcn.140073980
nop
call fcn.140368068
nop
call fcn.140073980
nop
call fcn.140368068
nop
call fcn.140368068
int3
call fcn.140073980
int3
call fcn.140368068
nop
call fcn.140368068
int3