Function at 0x408960
Capabilities:
Allocate thread local storage

Disassembly:
sub esp, 0x14
call fcn.00401bb0
test al, al
je 0x408971
call fcn.00414160
call fcn.00408710
call fcn.00406810
test eax, eax
je 0x408986
push 0x6f
call fcn.00408290
push ebx
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx]
push ebp
push esi
push edi
push eax
push 0x421914
push 0xffffffffffffffff
push 0x7fff
push 0x429660
call fcn.0041454f
mov esi, dword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
add esp, 0x14
push 0x429660
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x7fff
push 0x449660
push 0
call edi
push 0x7fff
push 0x439660
push 0
call edi
push 0x439660
call esi
mov ebp, dword [esp + 0x28]
cmp ebp, 1
jle 0x408da0
mov eax, dword [ebx + 4]
lea esi, [ebx + 4]
call fcn.00408350
test al, al
je 0x408a24
push str.2017_05_16
push str.32_bit
push 0x421cfc
push str.NSSM
push str._s__s__s__s_n
call fcn.00415612
add esp, 0x14
push 0
call fcn.00408290
mov ecx, dword [esi]
push str.start
push ecx
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408a50
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 0
call fcn.0040fd60
add esp, 0xc
push eax
call fcn.00408290
mov edx, dword [esi]
push str.stop
push edx
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408a7c
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 1
call fcn.0040fd60
add esp, 0xc
push eax
call fcn.00408290
mov eax, dword [esi]
push str.restart
push eax
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408abe
lea esi, [ebx + 8]
push esi
lea edi, [ebp - 2]
push edi
push 1
call fcn.0040fd60
add esp, 0xc
test eax, eax
je 0x408aac
push eax
call fcn.00408290
push esi
push edi
push 0
call fcn.0040fd60
add esp, 0xc
push eax
call fcn.00408290
mov ecx, dword [esi]
push str.pause
push ecx
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408aea
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 2
call fcn.0040fd60
add esp, 0xc
push eax
call fcn.00408290
mov edx, dword [esi]
push str.continue
push edx
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408b16
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 3
call fcn.0040fd60
add esp, 0xc
push eax
call fcn.00408290
mov eax, dword [esi]
push str.status
push eax
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408b42
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 4
call fcn.0040fd60
add esp, 0xc
push eax
call fcn.00408290
mov ecx, dword [esi]
push str.statuscode
push ecx
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408b70
push 1
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 4
call fcn.0040f8c0
add esp, 0x10
push eax
call fcn.00408290
mov edx, dword [esi]
push str.rotate
push edx
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408b9f
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 0x80
call fcn.0040fd60
add esp, 0xc
push eax
call fcn.00408290
mov eax, dword [esi]
push str.install
push eax
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408beb
cmp byte [0x459661], 0
jne 0x408bd0
push ebx
mov eax, 0x400001f6
call fcn.00408830
add esp, 4
push eax
call fcn.00408290
call fcn.00409c00
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
call fcn.00410b70
add esp, 8
push eax
call fcn.00408290
mov ecx, dword [esi]
push str.edit
push ecx
call fcn.004082b0
add esp, 8
test eax, eax
jne 0x408d1a
mov edx, dword [esi]
push 0x422270
push edx
call fcn.004082b0
add esp, 8
test eax, eax
jne 0x408d1a
mov eax, dword [esi]
push 0x422268
push eax
call fcn.004082b0
add esp, 8
test eax, eax
jne 0x408d1a
mov ecx, dword [esi]
push str.reset
push ecx
call fcn.004082b0
add esp, 8
test eax, eax
jne 0x408d1a
mov edx, dword [esi]
push str.unset
push edx
call fcn.004082b0
add esp, 8
test eax, eax
jne 0x408d1a
mov eax, dword [esi]
push str.dump
push eax
call fcn.004082b0
add esp, 8
test eax, eax
jne 0x408d1a
mov ecx, dword [esi]
push str.list
push ecx
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408ca5
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
call fcn.0040eff0
add esp, 8
push eax
call fcn.00408290
mov edx, dword [esi]
push str.processes
push edx
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408ccf
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
call fcn.0040f270
add esp, 8
push eax
call fcn.00408290
mov eax, dword [esi]
push str.remove
push eax
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408da0
cmp byte [0x459661], 0
jne 0x408d04
push ebx
mov eax, 0x400001f8
call fcn.00408830
add esp, 4
push eax
call fcn.00408290
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
call fcn.0040f4f0
add esp, 8
push eax
call fcn.00408290
lea ecx, [ebp - 1]
push esi
push ecx
call fcn.0040dcb0
mov ecx, eax
add esp, 8
mov dword [esp + 0x10], ecx
cmp ecx, 3
jne 0x408d53
cmp byte [0x459661], 0
jne 0x408d53
cmp ebp, eax
jne 0x408d53
push ebx
mov eax, 0x400001f7
call fcn.00408830
add esp, 4
push eax
call fcn.00408290
xor eax, eax
test ebp, ebp
jle 0x408d9a
lea esp, [esp]
mov esi, dword [ebx + eax*4]
mov ecx, esi
lea edi, [ecx + 2]
jmp 0x408d70
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x408d70
sub ecx, edi
sar ecx, 1
lea edx, [ecx + ecx]
mov ecx, esi
test edx, edx
je 0x408d91
mov byte [ecx], 0
inc ecx
sub edx, 1
jne 0x408d88
inc eax
cmp eax, ebp
jl 0x408d60
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00408290
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp byte [0x459661], 0
mov dword [0x429600], eax
je 0x408db9
call fcn.00409c00
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
test eax, eax
jne 0x408dfb
lea edx, [esp + 0x14]
xor esi, esi
push edx
mov dword [esp + 0x18], str.NSSM
mov dword [esp + 0x1c], 0x410d20
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
call dword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherW]
test eax, eax
jne 0x408e2c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x427
jne 0x408e0b
push 1
call fcn.004086a0
add esp, 4
push eax
call fcn.00408290
push esi
push eax
call fcn.004020f0
add esp, 4
push eax
push 0xc00003e9
push 1
call fcn.00402230
add esp, 0x10
push 0x64
call fcn.00408290
push esi
call fcn.00408290
int3