Function at 0x18000fcf0
Capabilities:
Print debug messages

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x68]
sub rsp, 0x168
mov rax, qword [0x180043040]
xor rax, rsp
mov qword [rbp + 0x50], rax
mov rcx, qword [rbp + 0xf0]
mov rdx, qword [rbp + 0xf8]
mov r8, qword [rbp + 0x100]
mov r9, qword [rbp + 0x110]
mov eax, dword [0x180047fd8]
mov rdi, qword [rbp + 0xb0]
mov r12, qword [rbp + 0xb8]
mov r14, qword [rbp + 0xc0]
mov r13d, dword [rbp + 0xc8]
mov r15, qword [rbp + 0xe8]
mov rsi, qword [rbp + 0x108]
mov qword [rbp - 0x78], rcx
mov qword [rbp - 0x80], rdx
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x70], r9
test al, 1
je 0x18000ffe4
test al, 2
jne 0x18000ffe4
xor eax, eax
mov qword [rbp + 0x10], rcx
mov rcx, qword [0x180048010]
xor ebx, ebx
mov dword [rbp - 0x34], eax
xorps xmm0, xmm0
mov eax, dword [rbp + 0xd0]
mov qword [rbp - 0x10], rax
mov eax, dword [rbp + 0xd8]
mov qword [rbp - 8], rax
mov eax, dword [rbp + 0xe0]
mov qword [rbp], rax
mov rax, qword [0x180047c08]
mov qword [rbp - 0x50], 8
mov qword [rbp - 0x30], rdi
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], r13
mov qword [rbp + 8], r15
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
mov qword [rbp + 0x28], rsi
mov qword [rbp + 0x30], r9
mov dword [rbp - 0x48], ebx
mov dword [rbp - 0x70], ebx
movups xmmword [rbp - 0x44], xmm0
test rax, rax
je 0x18000fe62
mov dword [rsp + 0x48], 0x88
lea rdx, [rbp - 0x50]
mov qword [rsp + 0x40], rdx
xor r9d, r9d
mov dword [rsp + 0x38], 0x88
lea rdx, [rbp - 0x50]
mov qword [rsp + 0x30], rdx
xor r8d, r8d
lea rdx, [rbp + 0x40]
mov dword [rsp + 0x28], 0x7afd0010
mov qword [rsp + 0x20], rdx
xor edx, edx
call rax
test eax, eax
jns 0x18000fe5a
and eax, 0xc0000000
cmp eax, 0xc0000000
je 0x18000fe96
mov eax, dword [rbp + 0x48]
mov dword [rbp - 0x70], eax
jmp 0x18000fe96
mov qword [rsp + 0x38], rbx
lea rax, [rbp - 0x70]
mov qword [rsp + 0x30], rax
lea r8, [rbp - 0x50]
lea rax, [rbp - 0x50]
mov dword [rsp + 0x28], 0x88
mov r9d, 0x88
mov qword [rsp + 0x20], rax
mov edx, 0x7afd0010
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [rbp - 0x38], 0x87a00002
jne 0x18000feb2
mov rax, qword [0x180047ca0]
mov ecx, dword [rbp - 0x34]
call rax
mov ecx, eax
jmp 0x180010334
mov ecx, dword [0x180047bd8]
call fcn.180004860
mov r10d, dword [rbp + 0xe0]
mov r9d, r13d
mov rcx, qword [rsp + 0x70]
mov r8, r14
mov qword [rsp + 0x60], rcx
mov rdx, r12
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rcx
mov rcx, qword [rbp - 0x80]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rbp - 0x78]
mov qword [rsp + 0x40], rcx
mov rcx, rdi
mov qword [rsp + 0x38], r15
mov dword [rsp + 0x30], r10d
mov r10d, dword [rbp + 0xd8]
mov dword [rsp + 0x28], r10d
mov r10d, dword [rbp + 0xd0]
mov dword [rsp + 0x20], r10d
call rax
cmp dword [rbp - 0x38], 0x87a00001
mov rdi, rax
jne 0x18000ffdc
test rax, rax
jne 0x18000ff3f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x44], eax
jmp 0x18000ff42
mov dword [rbp - 0x44], ebx
mov rax, qword [0x180047c08]
mov rcx, qword [0x180048010]
mov qword [rbp - 0x40], rdi
mov dword [rbp - 0x48], 1
mov dword [rbp - 0x70], ebx
test rax, rax
je 0x18000ffa8
mov dword [rsp + 0x48], 0x88
lea rdx, [rbp - 0x50]
mov qword [rsp + 0x40], rdx
xor r9d, r9d
mov dword [rsp + 0x38], 0x88
lea rdx, [rbp - 0x50]
mov qword [rsp + 0x30], rdx
xor r8d, r8d
lea rdx, [rbp + 0x40]
mov dword [rsp + 0x28], 0x7afd0010
mov qword [rsp + 0x20], rdx
xor edx, edx
call rax
mov rax, rdi
jmp 0x18001033c
mov qword [rsp + 0x38], rbx
lea rax, [rbp - 0x70]
mov qword [rsp + 0x30], rax
lea r8, [rbp - 0x50]
lea rax, [rbp - 0x50]
mov dword [rsp + 0x28], 0x88
mov r9d, 0x88
mov qword [rsp + 0x20], rax
mov edx, 0x7afd0010
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rax, rdi
jmp 0x18001033c
test dword [0x180046490], 0x20000
je 0x18001004f
mov eax, dword [rbp + 0xe0]
lea r9, [0x180038c9c]
mov dword [rsp + 0x38], eax
lea rdx, str.HFunc_CreateServiceW__h_x__name_ws__disp_ws__svcType:__x__startType:__x__errControl:__x__n
mov eax, dword [rbp + 0xd8]
mov rcx, r9
mov dword [rsp + 0x30], eax
test r14, r14
mov eax, dword [rbp + 0xd0]
mov r8, rdi
cmovne rcx, r14
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
test r12, r12
lea rcx, [0x180046090]
cmovne r9, r12
call qword [0x1800477f0]
lea rcx, [0x180046090]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov r8d, 4
mov rdx, r12
mov rcx, rdi
call fcn.1800104d0
mov rbx, rax
test rax, rax
je 0x180010093
test dword [0x180046490], 0x20000
je 0x180010081
lea rcx, str.___already_exist_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, rbx
call fcn.18000f430
mov ecx, 0x431
jmp 0x180010334
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x424
jne 0x18001033a
mov edx, 1
mov rcx, r12
call fcn.180008550
mov rdi, rax
test rax, rax
je 0x18001033a
lea rdx, str.Type
lea rcx, [rbp - 0x68]
call qword [0x180047d80]
mov r10, qword [0x180047d60]
lea rax, [rbp + 0xd0]
mov dword [rsp + 0x28], 4
lea rdx, [rbp - 0x68]
mov r9d, 4
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rcx, rdi
call r10
test eax, eax
js 0x18001031d
lea rdx, str.Start
lea rcx, [rbp - 0x68]
call qword [0x180047d80]
mov rax, qword [0x180047d60]
lea rcx, [rbp + 0xd8]
mov dword [rsp + 0x28], 4
lea rdx, [rbp - 0x68]
mov qword [rsp + 0x20], rcx
mov r9d, 4
mov rcx, rdi
xor r8d, r8d
call rax
test eax, eax
js 0x18001031d
lea rdx, str.ErrorControl
lea rcx, [rbp - 0x68]
call qword [0x180047d80]
mov rax, qword [0x180047d60]
lea rcx, [rbp + 0xe0]
mov dword [rsp + 0x28], 4
lea rdx, [rbp - 0x68]
mov qword [rsp + 0x20], rcx
mov r9d, 4
mov rcx, rdi
xor r8d, r8d
call rax
test eax, eax
js 0x18001031d
mov rbx, 0xffffffffffffffff
test r14, r14
je 0x1800101f8
lea rdx, str.DisplayName
lea rcx, [rbp - 0x68]
call qword [0x180047d80]
mov r10, qword [0x180047d60]
mov rax, rbx
nop word [rax + rax]
cmp word [r14 + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x1800101c0
lea eax, [rax*2 + 2]
mov r9d, 1
mov dword [rsp + 0x28], eax
lea rdx, [rbp - 0x68]
xor r8d, r8d
mov qword [rsp + 0x20], r14
mov rcx, rdi
call r10
test eax, eax
js 0x18001031d
test r15, r15
je 0x180010258
lea rdx, str.ImagePath
lea rcx, [rbp - 0x68]
call qword [0x180047d80]
mov r10, qword [0x180047d60]
mov rax, rbx
nop dword [rax + rax]
cmp word [r15 + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x180010220
lea eax, [rax*2 + 2]
mov r9d, 1
mov dword [rsp + 0x28], eax
lea rdx, [rbp - 0x68]
xor r8d, r8d
mov qword [rsp + 0x20], r15
mov rcx, rdi
call r10
test eax, eax
js 0x18001031d
test rsi, rsi
je 0x1800102b3
lea rdx, str.ObjectName
lea rcx, [rbp - 0x68]
call qword [0x180047d80]
mov r10, qword [0x180047d60]
nop word [rax + rax]
cmp word [rsi + rbx*2 + 2], 0
lea rbx, [rbx + 1]
jne 0x180010280
lea eax, [rbx*2 + 2]
mov r9d, 1
mov dword [rsp + 0x28], eax
lea rdx, [rbp - 0x68]
xor r8d, r8d
mov qword [rsp + 0x20], rsi
mov rcx, rdi
call r10
test eax, eax
js 0x18001031d
lea rdx, str.SCM_Win32ExitCode
lea rcx, [rbp - 0x68]
call qword [0x180047d80]
mov rax, qword [0x180047d60]
lea rcx, [rbp - 0x58]
mov dword [rsp + 0x28], 4
lea rdx, [rbp - 0x68]
mov qword [rsp + 0x20], rcx
mov r9d, 4
mov rcx, rdi
mov dword [rbp - 0x58], 0x435
xor r8d, r8d
call rax
test eax, eax
js 0x18001031d
mov rcx, r12
call fcn.18000a380
mov rsi, rax
test rax, rax
je 0x18001031d
mov rcx, rax
call fcn.18000a570
test eax, eax
jne 0x18001035c
mov rcx, rsi
call fcn.18000a4b0
mov rcx, rdi
call qword [0x180047d48]
mov rcx, rdi
call qword [0x180047d38]
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.18001e5f0
add rsp, 0x168
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
test dword [0x180046490], 0x20000
je 0x18001038c
mov r8, rsi
lea rdx, str.___got_h_x_n
lea rcx, [0x180046090]
call qword [0x1800477f0]
lea rcx, [0x180046090]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, rdi
call qword [0x180047d38]
xor ebx, ebx
lea rax, str.binPath
mov qword [rsp + 0x50], rbx
lea rdx, str.servName
mov qword [rsp + 0x48], r15
lea rcx, str.CreateService
mov dword [rsp + 0x40], 4
mov r9, r12
mov qword [rsp + 0x38], rax
lea r8d, [rbx + 4]
mov qword [rsp + 0x30], r14
lea rax, str.dispName
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rax
call fcn.18000e1f0
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, rsi
jmp 0x18001033c