Function at 0x408950
Capabilities:
Allocate thread local storage

Disassembly:
sub esp, 0x14
call fcn.00401bb0
test al, al
je 0x408961
call fcn.00414150
call fcn.00408710
call fcn.00406810
test eax, eax
je 0x408976
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 0x4218f4
push 0xffffffffffffffff
push 0x7fff
push 0x429660
call fcn.0041453f
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 0x408d90
mov eax, dword [ebx + 4]
lea esi, [ebx + 4]
call fcn.00408350
test al, al
je 0x408a14
push str.2017_04_26
push str.32_bit
push 0x421cdc
push str.NSSM
push str._s__s__s__s_n
call fcn.00415602
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 0x408a40
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 0
call fcn.0040fd50
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 0x408a6c
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 1
call fcn.0040fd50
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 0x408aae
lea esi, [ebx + 8]
push esi
lea edi, [ebp - 2]
push edi
push 1
call fcn.0040fd50
add esp, 0xc
test eax, eax
je 0x408a9c
push eax
call fcn.00408290
push esi
push edi
push 0
call fcn.0040fd50
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 0x408ada
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 2
call fcn.0040fd50
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 0x408b06
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 3
call fcn.0040fd50
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 0x408b32
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 4
call fcn.0040fd50
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 0x408b60
push 1
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 4
call fcn.0040f8b0
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 0x408b8f
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
push 0x80
call fcn.0040fd50
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 0x408bdb
cmp byte [0x459661], 0
jne 0x408bc0
push ebx
mov eax, 0x400001f6
call fcn.00408820
add esp, 4
push eax
call fcn.00408290
call fcn.00409bf0
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
call fcn.00410b60
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 0x408d0a
mov edx, dword [esi]
push 0x422250
push edx
call fcn.004082b0
add esp, 8
test eax, eax
jne 0x408d0a
mov eax, dword [esi]
push 0x422248
push eax
call fcn.004082b0
add esp, 8
test eax, eax
jne 0x408d0a
mov ecx, dword [esi]
push str.reset
push ecx
call fcn.004082b0
add esp, 8
test eax, eax
jne 0x408d0a
mov edx, dword [esi]
push str.unset
push edx
call fcn.004082b0
add esp, 8
test eax, eax
jne 0x408d0a
mov eax, dword [esi]
push str.dump
push eax
call fcn.004082b0
add esp, 8
test eax, eax
jne 0x408d0a
mov ecx, dword [esi]
push str.list
push ecx
call fcn.004082b0
add esp, 8
test eax, eax
je 0x408c95
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
call fcn.0040efe0
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 0x408cbf
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
call fcn.0040f260
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 0x408d90
cmp byte [0x459661], 0
jne 0x408cf4
push ebx
mov eax, 0x400001f8
call fcn.00408820
add esp, 4
push eax
call fcn.00408290
add ebx, 8
push ebx
add ebp, 0xfffffffe
push ebp
call fcn.0040f4e0
add esp, 8
push eax
call fcn.00408290
lea ecx, [ebp - 1]
push esi
push ecx
call fcn.0040dca0
mov ecx, eax
add esp, 8
mov dword [esp + 0x10], ecx
cmp ecx, 3
jne 0x408d43
cmp byte [0x459661], 0
jne 0x408d43
cmp ebp, eax
jne 0x408d43
push ebx
mov eax, 0x400001f7
call fcn.00408820
add esp, 4
push eax
call fcn.00408290
xor eax, eax
test ebp, ebp
jle 0x408d8a
lea esp, [esp]
mov esi, dword [ebx + eax*4]
mov ecx, esi
lea edi, [ecx + 2]
jmp 0x408d60
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x408d60
sub ecx, edi
sar ecx, 1
lea edx, [ecx + ecx]
mov ecx, esi
test edx, edx
je 0x408d81
mov byte [ecx], 0
inc ecx
sub edx, 1
jne 0x408d78
inc eax
cmp eax, ebp
jl 0x408d50
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 0x408da9
call fcn.00409bf0
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
test eax, eax
jne 0x408deb
lea edx, [esp + 0x14]
xor esi, esi
push edx
mov dword [esp + 0x18], str.NSSM
mov dword [esp + 0x1c], 0x410d10
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
call dword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherW]
test eax, eax
jne 0x408e1c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x427
jne 0x408dfb
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