Function at 0x14000a2e0
Capabilities:
Allocate thread local storage

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x50
mov rbx, rdx
movsxd rsi, ecx
call fcn.140001d10
test al, al
je 0x14000a2fe
call fcn.140017cc0
call fcn.14000a050
call fcn.140007a90
test eax, eax
je 0x14000a317
mov ecx, 0x6f
call fcn.140009b30
int3
mov rax, qword [rbx]
lea r9, [0x140026d5c]
lea rcx, [0x140032150]
or r8, 0xffffffffffffffff
mov edx, 0x7fff
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x20], rax
call fcn.140018170
lea rcx, [0x140032150]
call qword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
lea rdx, [0x140052150]
mov r8d, 0x7fff
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rdx, [0x140042150]
mov r8d, 0x7fff
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [0x140042150]
call qword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
cmp esi, 1
jle 0x14000a73f
mov rcx, qword [rbx + 8]
call fcn.140009bf0
test al, al
je 0x14000a3cf
lea rax, str.2017_05_16
lea r9, str.64_bit
lea r8, [0x140027190]
lea rdx, str.NSSM
lea rcx, str._s__s__s__s_n
mov qword [rsp + 0x20], rax
call fcn.1400194c0
xor ecx, ecx
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.start
call fcn.140009b50
test eax, eax
je 0x14000a3f9
lea r8, [rbx + 0x10]
lea edx, [rsi - 2]
xor ecx, ecx
call fcn.1400129d0
mov ecx, eax
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.stop
call fcn.140009b50
test eax, eax
je 0x14000a426
lea r8, [rbx + 0x10]
lea edx, [rsi - 2]
mov ecx, 1
call fcn.1400129d0
mov ecx, eax
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.restart
call fcn.140009b50
test eax, eax
je 0x14000a46d
lea r8, [rbx + 0x10]
lea edx, [rsi - 2]
mov ecx, 1
call fcn.1400129d0
test eax, eax
je 0x14000a457
mov ecx, eax
call fcn.140009b30
int3
lea r8, [rbx + 0x10]
lea edx, [rsi - 2]
xor ecx, ecx
call fcn.1400129d0
mov ecx, eax
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.pause
call fcn.140009b50
test eax, eax
je 0x14000a49a
lea r8, [rbx + 0x10]
lea edx, [rsi - 2]
mov ecx, 2
call fcn.1400129d0
mov ecx, eax
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.continue
call fcn.140009b50
test eax, eax
je 0x14000a4c7
lea r8, [rbx + 0x10]
lea edx, [rsi - 2]
mov ecx, 3
call fcn.1400129d0
mov ecx, eax
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.status
call fcn.140009b50
test eax, eax
je 0x14000a4f4
lea r8, [rbx + 0x10]
lea edx, [rsi - 2]
mov ecx, 4
call fcn.1400129d0
mov ecx, eax
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.statuscode
call fcn.140009b50
test eax, eax
je 0x14000a524
lea r8, [rbx + 0x10]
lea edx, [rsi - 2]
mov r9b, 1
mov ecx, 4
call fcn.140012550
mov ecx, eax
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.rotate
call fcn.140009b50
test eax, eax
je 0x14000a551
lea r8, [rbx + 0x10]
lea edx, [rsi - 2]
mov ecx, 0x80
call fcn.1400129d0
mov ecx, eax
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.install
call fcn.140009b50
test eax, eax
je 0x14000a59f
cmp byte [0x140062151], 0
jne 0x14000a586
mov r8d, 0x400001f6
mov rdx, rbx
mov ecx, esi
call fcn.14000a180
mov ecx, eax
call fcn.140009b30
int3
call fcn.14000b870
lea rdx, [rbx + 0x10]
lea ecx, [rsi - 2]
call fcn.140013b00
mov ecx, eax
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.edit
call fcn.140009b50
test eax, eax
jne 0x14000a6cc
mov rcx, qword [rbx + 8]
lea rdx, [0x140027770]
call fcn.140009b50
test eax, eax
jne 0x14000a6cc
mov rcx, qword [rbx + 8]
lea rdx, [0x140027768]
call fcn.140009b50
test eax, eax
jne 0x14000a6cc
mov rcx, qword [rbx + 8]
lea rdx, str.reset
call fcn.140009b50
test eax, eax
jne 0x14000a6cc
mov rcx, qword [rbx + 8]
lea rdx, str.unset
call fcn.140009b50
test eax, eax
jne 0x14000a6cc
mov rcx, qword [rbx + 8]
lea rdx, str.dump
call fcn.140009b50
test eax, eax
jne 0x14000a6cc
mov rcx, qword [rbx + 8]
lea rdx, str.list
call fcn.140009b50
test eax, eax
je 0x14000a657
lea rdx, [rbx + 0x10]
lea ecx, [rsi - 2]
call fcn.140011a80
mov ecx, eax
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.processes
call fcn.140009b50
test eax, eax
je 0x14000a67f
lea rdx, [rbx + 0x10]
lea ecx, [rsi - 2]
call fcn.140011db0
mov ecx, eax
call fcn.140009b30
int3
mov rcx, qword [rbx + 8]
lea rdx, str.remove
call fcn.140009b50
test eax, eax
je 0x14000a73f
cmp byte [0x140062151], 0
jne 0x14000a6b8
mov r8d, 0x400001f8
mov rdx, rbx
mov ecx, esi
call fcn.14000a180
mov ecx, eax
call fcn.140009b30
int3
lea rdx, [rbx + 0x10]
lea ecx, [rsi - 2]
call fcn.140012090
mov ecx, eax
call fcn.140009b30
int3
lea ecx, [rsi - 1]
lea rdx, [rbx + 8]
call fcn.140010470
mov r11d, eax
cmp eax, 3
jne 0x14000a705
cmp byte [0x140062151], 0
jne 0x14000a705
cmp esi, eax
jne 0x14000a705
mov r8d, 0x400001f7
mov rdx, rbx
mov ecx, eax
call fcn.14000a180
mov ecx, eax
call fcn.140009b30
int3
xor r8d, r8d
test esi, esi
jle 0x14000a736
nop dword [rax]
mov rdx, qword [rbx + 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, rsi
rep stosb byte [rdi], al
jl 0x14000a710
mov ecx, r11d
call fcn.140009b30
int3
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp byte [0x140062151], 0
mov dword [0x140032080], eax
je 0x14000a759
call fcn.14000b870
mov ecx, 0xfffffff6
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
test rax, rax
jne 0x14000a7f2
xor r8d, r8d
lea rax, str.NSSM
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], rax
lea rax, [0x140013d10]
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], r8
call qword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherW]
test eax, eax
jne 0x14000a7ea
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x427
jne 0x14000a7c0
mov ecx, 1
call fcn.140009fb0
mov ecx, eax
call fcn.140009b30
int3
mov ecx, eax
call fcn.140002430
mov ecx, 1
xor r9d, r9d
mov r8, rax
mov edx, 0xc00003e9
movzx ecx, cx
call fcn.1400025f0
mov ecx, 0x64
call fcn.140009b30
int3
xor ecx, ecx
call fcn.140009b30
int3
mov ecx, 1
call fcn.140009fb0
mov ecx, eax
call fcn.140009b30
int3