Function at 0x140001770
Capabilities:
Create service
Delete service

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x90]
sub rsp, 0x190
mov rax, qword [0x14000a040]
xor rax, rsp
mov qword [rbp + 0x80], rax
mov rsi, rdx
xor r13d, r13d
mov r8, qword [rdx + 8]
mov ecx, r13d
lea rdx, str.install
nop dword [rax]
movzx eax, byte [r8 + rcx]
inc rcx
cmp al, byte [rdx + rcx - 1]
jne 0x140001d23
cmp rcx, 8
jne 0x1400017c0
lea rdx, str.Installing_service
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003e90
mov rdx, qword [rsi + 0x10]
lea rcx, [rbp + 0x40]
call fcn.140003220
nop
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], rax
lea rax, vtable.std::wstring_convert_class_std::codecvt_utf8_utf16_wchar_t__1114111__0___wchar_t__class_std::allocator_wchar_t___class_std::allocator_char__.0
mov qword [rbp - 0x40], rax
mov cl, 1
call qword [sym.imp.MSVCP140.dll_private:_static_class_std::locale::_Locimp____ptr64___cdecl_std::locale::_Init_bool_]
mov qword [rbp - 0x28], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], r13
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
movups xmmword [rbp], xmm0
mov qword [rbp + 0x10], r13
mov qword [rbp + 0x18], 7
mov word [rbp], r13w
mov word [rbp + 0x28], 0
mov byte [rbp + 0x2a], 0
mov ecx, 0x40
call fcn.140004b20
mov rbx, rax
mov qword [rsp + 0x70], rax
xor edx, edx
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::codecvt_wchar_t__char__struct__Mbstatet_::constructor_unsigned_long_long_unsigned___int64_____ptr64]
lea rax, vtable.std::codecvt_utf8_utf16_wchar_t__1114111__0_.0
mov qword [rbx], rax
mov qword [rbp + 0x20], r13
mov qword [rbp - 0x38], rbx
mov rcx, qword [rbp - 0x28]
call qword [sym.imp.MSVCP140.dll_private:_static_class_std::locale::_Locimp____ptr64___cdecl_std::locale::_Locimp::_New_Locimp_class_std::locale::_Locimp_const____ptr64_]
mov rdi, rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::locale::id_std::codecvt_wchar_t__char__struct__Mbstatet_::id]
call qword [sym.imp.MSVCP140.dll_public:_unsigned_long_long_unsigned___int64____cdecl_std::locale::id::operator_unsigned_long_long_unsigned___int64__void____ptr64]
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.MSVCP140.dll_private:_void___cdecl_std::locale::_Locimp::_Addfac_class_std::locale::facet____ptr64__unsigned_long_long_unsigned___int64_____ptr64]
mov dword [rdi + 0x20], r13d
lea rcx, [rdi + 0x28]
lea rdx, [0x140006584]
call qword [sym.imp.MSVCP140.dll_public:_class_std::_Yarn_char_____ptr64___cdecl_std::_Yarn_char_::operator_char_const____ptr64____ptr64]
mov rcx, qword [rbp - 0x28]
cmp rcx, rdi
je 0x140001907
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x1400018fa
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
mov qword [rbp - 0x28], rdi
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
test rax, rax
je 0x140001923
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
mov qword [rbp + 0x30], r13
lea r8, [rbp + 0x40]
cmp qword [rbp + 0x58], 0xf
cmova r8, qword [rbp + 0x40]
mov r9, qword [rbp + 0x50]
add r9, r8
lea rdx, [rbp - 0x68]
lea rcx, [rbp - 0x40]
call fcn.1400035b0
nop
mov rdx, qword [rsi + 0x18]
test rdx, rdx
jne 0x140001a38
lea rdx, str.Broker_address_is_set_to_default
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140003e90
mov rcx, rax
lea rdx, [0x140004060]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
mov ecx, 0x40
call fcn.140004b20
mov rcx, rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x78], 0x33
mov qword [rbp - 0x70], 0x3f
movups xmm0, xmmword [str.wss:__mqttwss.sus.idevops.xo.siemens.cloud:443_mqtt]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140006708]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x140006718]
movups xmmword [rax + 0x20], xmm0
movzx eax, word [0x140006728]
mov word [rcx + 0x30], ax
movzx eax, byte [0x14000672a]
mov byte [rcx + 0x32], al
mov byte [rcx + 0x33], 0
lea rdx, [rsp + 0x78]
lea rcx, [rbp + 0x60]
call fcn.140003340
mov rcx, rax
call fcn.1400013a0
nop
mov rdx, qword [rbp - 0x70]
cmp rdx, 0xf
jbe 0x140001b7a
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001b75
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001b6b
jmp 0x140001b75
lea rcx, [rbp + 0x60]
call fcn.140003220
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], r13
lea r14, [rbp + 0x60]
mov r15, qword [rbp + 0x78]
cmp r15, 0xf
seta r12b
mov rdi, qword [rbp + 0x60]
cmova r14, rdi
movabs rsi, 0x7fffffffffffffff
mov rbx, qword [rbp + 0x70]
cmp rbx, rsi
ja 0x140001e76
cmp rbx, 0xf
ja 0x140001aa1
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x70], 0xf
movups xmm0, xmmword [r14]
movups xmmword [rsp + 0x78], xmm0
jmp 0x140001b36
mov rax, rbx
or rax, 0xf
cmp rax, rsi
jbe 0x140001ad9
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140004b20
mov rcx, rax
test rax, rax
je 0x140001b04
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140001b1a
mov ecx, 0x16
cmp rax, rcx
cmovb rax, rcx
mov rsi, rax
lea rcx, [rax + 1]
cmp rcx, 0x1000
jb 0x140001b0b
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140001e7c
jmp 0x140001abb
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x140001b17
call fcn.140004b20
jmp 0x140001b1a
mov rax, r13
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x70], rsi
lea r8, [rbx + 1]
mov rdx, r14
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x78]
call fcn.1400013a0
nop
test r12b, r12b
je 0x140001b7a
lea rdx, [r15 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140001b72
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001b72
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rdi
call fcn.140004b5c
lea rdi, [rbp - 0x68]
cmp qword [rbp - 0x50], 7
cmova rdi, qword [rbp - 0x68]
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 2]
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rbx, rax
test rax, rax
jne 0x140001bc6
lea rdx, str.OpenSCManager_failed
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140003e90
mov rcx, rax
lea rdx, [0x140004060]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140001c7c
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 0x10
mov r9d, 0xf01ff
lea r8, str.DevOpsFFPublisher
lea rdx, str.DevOpsFFPublisher
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov rdi, rax
test rax, rax
jne 0x140001c46
lea rdx, str.CreateService_failed
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140003e90
mov rcx, rax
lea rdx, [0x140004060]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140001c72
lea rdx, str.Service_installed_successfully
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003e90
mov rcx, rax
lea rdx, [0x140004060]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 7
jbe 0x140001cbf
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001cba
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001cba
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140004b5c
mov qword [rbp - 0x58], r13
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], r13w
lea rcx, [rbp - 0x40]
call fcn.140002400
nop
mov rdx, qword [rbp + 0x58]
cmp rdx, 0xf
jbe 0x140001e1a
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001d17
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001d17
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140004b5c
xor eax, eax
jmp 0x140001e46
lea rdx, str.uninstall
mov rcx, r8
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jne 0x140001e1e
xor edx, edx
xor ecx, ecx
lea r8d, [rax + 2]
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rbx, rax
test rax, rax
jne 0x140001d7a
lea rdx, str.OpenSCManager_failed
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140003e90
mov rcx, rax
lea rdx, [0x140004060]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor eax, eax
jmp 0x140001e46
mov r8d, 0xf01ff
lea rdx, str.DevOpsFFPublisher
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rdi, rax
test rax, rax
jne 0x140001dc8
lea rdx, str.OpenService_failed
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140003e90
mov rcx, rax
lea rdx, [0x140004060]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
jmp 0x140001e46
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
jne 0x140001de5
lea rdx, str.DeleteService_failed
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
jmp 0x140001df3
lea rdx, str.Service_uninstalled_successfully
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003e90
lea rdx, [0x140004060]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
jmp 0x140001e46
lea rdx, str.Invalid_argument
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140003e90
mov rcx, rax
lea rdx, [0x140004060]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov eax, 1
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.140004b00
lea r11, [rsp + 0x190]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1400011b0
nop
call fcn.140001110
int3