Function at 0x14000e560
Capabilities:
Allocate thread local storage

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x40
mov rsi, rdx
movsxd rbx, ecx
call fcn.140001b00
call fcn.140019be0
lea rcx, [rax + 0x30]
call fcn.14001b724
mov edx, 0x20000
mov ecx, eax
call fcn.14001b5cc
call fcn.140019be0
lea rcx, [rax + 0x60]
call fcn.14001b724
mov edx, 0x20000
mov ecx, eax
call fcn.14001b5cc
call fcn.14000e2e0
call fcn.14000c4a0
test eax, eax
je 0x14000e5c2
mov ecx, 0x6f
call fcn.14001b45c
int3
lea rdx, [0x14003eeb0]
mov r8d, 0x7fff
xor ecx, ecx
mov qword [rsp + 0x50], rdi
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rdx, [0x14002eeb0]
mov r8d, 0x7fff
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [0x14002eeb0]
call qword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
cmp ebx, 1
jle 0x14000e8ff
mov rcx, qword [rsi + 8]
lea rdx, str.start
call fcn.14000e140
test eax, eax
je 0x14000e631
lea r8, [rsi + 0x10]
lea edx, [rbx - 2]
xor ecx, ecx
call fcn.140015370
mov ecx, eax
call fcn.14001b45c
int3
mov rcx, qword [rsi + 8]
lea rdx, str.stop
call fcn.14000e140
test eax, eax
je 0x14000e65e
lea r8, [rsi + 0x10]
lea edx, [rbx - 2]
mov ecx, 1
call fcn.140015370
mov ecx, eax
call fcn.14001b45c
int3
mov rcx, qword [rsi + 8]
lea rdx, str.restart
call fcn.14000e140
test eax, eax
je 0x14000e6a5
lea r8, [rsi + 0x10]
lea edx, [rbx - 2]
mov ecx, 1
call fcn.140015370
test eax, eax
je 0x14000e68f
mov ecx, eax
call fcn.14001b45c
int3
lea r8, [rsi + 0x10]
lea edx, [rbx - 2]
xor ecx, ecx
call fcn.140015370
mov ecx, eax
call fcn.14001b45c
int3
mov rcx, qword [rsi + 8]
lea rdx, str.pause
call fcn.14000e140
test eax, eax
je 0x14000e6d2
lea r8, [rsi + 0x10]
lea edx, [rbx - 2]
mov ecx, 2
call fcn.140015370
mov ecx, eax
call fcn.14001b45c
int3
mov rcx, qword [rsi + 8]
lea rdx, str.continue
call fcn.14000e140
test eax, eax
je 0x14000e6ff
lea r8, [rsi + 0x10]
lea edx, [rbx - 2]
mov ecx, 3
call fcn.140015370
mov ecx, eax
call fcn.14001b45c
int3
mov rcx, qword [rsi + 8]
lea rdx, str.status
call fcn.14000e140
test eax, eax
je 0x14000e72c
lea r8, [rsi + 0x10]
lea edx, [rbx - 2]
mov ecx, 4
call fcn.140015370
mov ecx, eax
call fcn.14001b45c
int3
mov rcx, qword [rsi + 8]
lea rdx, str.rotate
call fcn.14000e140
test eax, eax
je 0x14000e759
lea r8, [rsi + 0x10]
lea edx, [rbx - 2]
mov ecx, 0x80
call fcn.140015370
mov ecx, eax
call fcn.14001b45c
int3
mov rcx, qword [rsi + 8]
lea rdx, str.install
call fcn.14000e140
test eax, eax
je 0x14000e7a2
cmp byte [0x14004eeb1], 0
jne 0x14000e78e
mov r8d, 0x400001f6
mov rdx, rsi
mov ecx, ebx
call fcn.14000e400
mov ecx, eax
call fcn.14001b45c
int3
lea rdx, [rsi + 0x10]
lea ecx, [rbx - 2]
call fcn.140016870
mov ecx, eax
call fcn.14001b45c
int3
mov rcx, qword [rsi + 8]
lea rdx, str.edit
call fcn.14000e140
test eax, eax
jne 0x14000e884
mov rcx, qword [rsi + 8]
lea rdx, [0x1400265b8]
call fcn.14000e140
test eax, eax
jne 0x14000e884
mov rcx, qword [rsi + 8]
lea rdx, [0x1400265b0]
call fcn.14000e140
test eax, eax
jne 0x14000e884
mov rcx, qword [rsi + 8]
lea rdx, str.reset
call fcn.14000e140
test eax, eax
jne 0x14000e884
mov rcx, qword [rsi + 8]
lea rdx, str.unset
call fcn.14000e140
test eax, eax
jne 0x14000e884
mov rcx, qword [rsi + 8]
lea rdx, str.list
call fcn.14000e140
test eax, eax
je 0x14000e837
call fcn.140014c20
mov ecx, eax
call fcn.14001b45c
int3
mov rcx, qword [rsi + 8]
lea rdx, str.remove
call fcn.14000e140
test eax, eax
je 0x14000e8ff
cmp byte [0x14004eeb1], 0
jne 0x14000e870
mov r8d, 0x400001f8
mov rdx, rsi
mov ecx, ebx
call fcn.14000e400
mov ecx, eax
call fcn.14001b45c
int3
lea rdx, [rsi + 0x10]
lea ecx, [rbx - 2]
call fcn.140014f30
mov ecx, eax
call fcn.14001b45c
int3
lea ecx, [rbx - 1]
lea rdx, [rsi + 8]
call fcn.140013770
mov r11d, eax
cmp eax, 3
jne 0x14000e8bd
cmp byte [0x14004eeb1], 0
jne 0x14000e8bd
cmp ebx, eax
jne 0x14000e8bd
mov r8d, 0x400001f7
mov rdx, rsi
mov ecx, eax
call fcn.14000e400
mov ecx, eax
call fcn.14001b45c
int3
xor r8d, r8d
test ebx, ebx
jle 0x14000e8f6
nop word [rax + rax]
mov rdx, qword [rsi + r8*8]
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
inc r8
repne scasw ax, word [rdi]
mov rdi, rdx
not rcx
dec rcx
add rcx, rcx
cmp r8, rbx
rep stosb byte [rdi], al
jl 0x14000e8d0
mov ecx, r11d
call fcn.14001b45c
int3
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp byte [0x14004eeb1], 0
mov dword [0x14002ee00], eax
je 0x14000e919
call fcn.14000f6e0
mov ecx, 0xfffffff6
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
test rax, rax
jne 0x14000e9b7
xor r8d, r8d
lea rax, str.NSSM
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
lea rax, [0x140016a80]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], r8
call qword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherW]
test eax, eax
jne 0x14000e9af
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x427
jne 0x14000e980
mov ecx, 1
call fcn.14000e260
mov ecx, eax
call fcn.14001b45c
int3
mov ecx, eax
call fcn.140006fd0
mov ecx, 1
xor r9d, r9d
mov r8, rax
mov edx, 0xc00003e9
movzx ecx, cx
call fcn.140007190
call fcn.14000c640
mov ecx, 0x64
call fcn.14001b45c
int3
xor ecx, ecx
call fcn.14001b45c
int3
mov ecx, 1
call fcn.14000e260
mov ecx, eax
call fcn.14001b45c
int3