Function at 0x140183e10
Capabilities:
Modify service

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x14039a678]
xor rax, rsp
mov qword [rbp + 0x38], rax
mov r12, rdx
mov qword [rsp + 0x50], rcx
mov qword [rbp - 0x30], rdx
xor edi, edi
mov qword [rbp - 0x28], rdi
mov esi, edi
mov qword [rbp - 0x18], rdi
mov ecx, SafeArrayGetLBound
mov qword [rbp - 0x10], rcx
mov byte [rbp - 0x28], sil
mov r8, qword [rdx + 0x18]
mov rax, qword [rdx + 0x10]
test rax, rax
jne 0x14018400a
lea ecx, [rdi + 0x28]
call fcn.1401e3748
mov qword [rsp + 0x28], rax
test rax, rax
je 0x140183e8c
mov rcx, rax
call fcn.1400fb9d0
jmp 0x140183e8f
mov rax, rdi
mov r8d, 9
lea rdx, [rbp - 8]
mov rcx, rax
call fcn.1400fcb60
mov rbx, rax
lea rax, [rbp - 0x28]
cmp rax, rbx
je 0x140183f16
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x140183ee8
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140183ee3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14018450f
call fcn.1401e3784
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], SafeArrayGetLBound
mov byte [rbp - 0x28], 0
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x28], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x18], xmm1
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], SafeArrayGetLBound
mov byte [rbx], 0
mov rdx, qword [rbp + 0x10]
cmp rdx, 0x10
jb 0x140183f51
inc rdx
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140183f4c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14018450f
call fcn.1401e3784
mov byte [rbp - 8], 0
lea rdi, [rbp - 0x28]
mov rdx, qword [rbp - 0x28]
mov rcx, qword [rbp - 0x10]
cmp rcx, 0x10
cmovae rdi, rdx
lea r14, [rbp - 0x28]
cmovae r14, rdx
mov rsi, qword [rbp - 0x18]
add r14, rsi
lea rbx, [rbp - 0x28]
cmp rcx, 0x10
cmovae rbx, rdx
cmp rbx, r14
je 0x140183faf
sub rdi, rbx
nop dword [rax]
movsx ecx, byte [rbx]
call sub.api_ms_win_crt_string_l1_1_0.dll_tolower
mov byte [rdi + rbx], al
inc rbx
cmp rbx, r14
jne 0x140183f90
mov rcx, qword [rbp - 0x10]
mov rsi, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x28]
xor edi, edi
movabs r8, 0x7fffffffffffffff
mov rax, r8
sub rax, rsi
cmp rax, 0x3d
jb 0x140184515
lea r15, [rbp - 0x28]
cmp rcx, 0x10
cmovae r15, rdx
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], rdi
lea r14, [rsi + 0x3d]
mov ebx, SafeArrayGetLBound
lea rdi, [rsp + 0x30]
cmp r14, rbx
jbe 0x14018405a
mov rbx, r14
or rbx, 0xf
cmp rbx, r8
jbe 0x14018403d
mov rbx, r8
jmp 0x140184049
lea rdx, [rbp - 0x28]
cmp rdx, r12
je 0x140184034
mov rdx, r12
cmp r8, 0x10
jb 0x140184020
mov rdx, qword [r12]
mov r8, rax
lea rcx, [rbp - 0x28]
call fcn.1400e82b0
mov rcx, qword [rbp - 0x10]
mov rsi, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x28]
jmp 0x140183fb1
mov eax, SafeArrayPutElement
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
call fcn.1400d1570
mov rdi, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], rbx
movups xmm0, xmmword [str._AsusSystemAnalysisService__SetServiceDescription__LangCode:]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [0x1402aa318]
movups xmmword [rdi + 0x10], xmm1
movups xmm0, xmmword [0x1402aa328]
movups xmmword [rdi + 0x20], xmm0
movsd xmm1, qword [0x1402aa338]
movsd qword [rdi + 0x30], xmm1
mov eax, dword [0x1402aa340]
mov dword [rdi + 0x38], eax
movzx eax, byte [0x1402aa344]
mov byte [rdi + 0x3c], al
lea rcx, [rdi + 0x3d]
mov r8, rsi
mov rdx, r15
call fcn.14021bb20
mov byte [rdi + r14], 0
lea rcx, [rsp + 0x30]
call fcn.14017eab0
mov rax, qword [0x14039e2a8]
mov qword [rsp + 0x20], rax
mov rbx, qword [rax + 8]
mov r15, rax
mov r14, 0xffffffffffffffff
mov r13, qword [rbp - 0x10]
mov rdi, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x28]
cmp byte [rbx + 0x19], 0
jne 0x140184151
nop
lea rdx, [rbp - 0x28]
cmp r13, 0x10
cmovae rdx, rsi
lea rcx, [rbx + 0x20]
cmp qword [rbx + 0x38], 0x10
jb 0x14018410b
mov rcx, qword [rbx + 0x20]
mov rsi, qword [rbx + 0x30]
mov r8, rsi
cmp rdi, rsi
cmovb r8, rdi
call fcn.14021ba20
test eax, eax
jne 0x140184134
cmp rsi, rdi
jae 0x14018412c
mov eax, r14d
jmp 0x140184134
xor eax, eax
cmp rsi, rdi
seta al
shr eax, 0x1f
test al, al
je 0x140184141
mov rbx, qword [rbx + 0x10]
jmp 0x140184147
mov r15, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
mov rsi, qword [rbp - 0x28]
je 0x1401840f0
cmp byte [r15 + 0x19], 0
jne 0x140184325
lea rdx, [r15 + 0x20]
cmp qword [r15 + 0x38], 0x10
jb 0x14018416b
mov rdx, qword [r15 + 0x20]
lea rcx, [rbp - 0x28]
cmp r13, 0x10
cmovae rcx, rsi
mov rbx, qword [r15 + 0x30]
mov r8, rdi
cmp rbx, rdi
cmovb r8, rbx
call fcn.14021ba20
test eax, eax
jne 0x1401841a0
cmp rdi, rbx
jae 0x140184198
mov eax, r14d
jmp 0x1401841a0
xor eax, eax
cmp rdi, rbx
seta al
shr eax, 0x1f
test al, al
jne 0x140184325
mov rax, qword [rsp + 0x20]
cmp r15, rax
je 0x140184325
mov rbx, qword [rax + 8]
mov qword [rsp + 0x58], rbx
mov dword [rsp + 0x60], 0
mov r15, rax
cmp byte [rbx + 0x19], 0
jne 0x140184249
mov qword [rsp + 0x58], rbx
lea rdx, [rbp - 0x28]
cmp r13, 0x10
cmovae rdx, rsi
lea rcx, [rbx + 0x20]
cmp qword [rbx + 0x38], 0x10
jb 0x1401841f3
mov rcx, qword [rbx + 0x20]
mov rsi, qword [rbx + 0x30]
mov r8, rsi
cmp rdi, rsi
cmovb r8, rdi
call fcn.14021ba20
test eax, eax
jne 0x14018421c
cmp rsi, rdi
jae 0x140184214
mov eax, r14d
jmp 0x14018421c
xor eax, eax
cmp rsi, rdi
seta al
shr eax, 0x1f
test al, al
je 0x140184231
mov dword [rsp + 0x60], 0
mov rbx, qword [rbx + 0x10]
jmp 0x14018423f
mov dword [rsp + 0x60], 1
mov r15, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
mov rsi, qword [rbp - 0x28]
je 0x1401841d3
cmp byte [r15 + 0x19], 0
jne 0x14018429f
lea rdx, [r15 + 0x20]
cmp qword [r15 + 0x38], 0x10
jb 0x14018425f
mov rdx, qword [r15 + 0x20]
lea rcx, [rbp - 0x28]
cmp r13, 0x10
cmovae rcx, rsi
mov rbx, qword [r15 + 0x30]
mov r8, rdi
cmp rbx, rdi
cmovb r8, rbx
call fcn.14021ba20
test eax, eax
jne 0x140184294
cmp rdi, rbx
jae 0x14018428c
mov eax, r14d
jmp 0x140184294
xor eax, eax
cmp rdi, rbx
seta al
shr eax, 0x1f
test al, al
je 0x14018431f
movabs rax, 0x38e38e38e38e38e
cmp qword [0x14039e2b0], rax
je 0x14018451b
lea rsi, [0x14039e2a8]
mov qword [rsp + 0x70], rsi
xor r15d, r15d
mov qword [rsp + 0x78], r15
lfence
lea ecx, [r15 + 0x48]
call fcn.1401e3748
mov rdi, rax
mov qword [rsp + 0x78], rax
lea rdx, [rbp - 0x28]
lea rcx, [rax + 0x20]
call fcn.1400da220
mov dword [rdi + 0x40], r15d
mov rax, qword [rsp + 0x20]
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
mov word [rdi + 0x18], r15w
movups xmm0, xmmword [rsp + 0x58]
movaps xmmword [rbp - 0x60], xmm0
mov r8, rdi
lea rdx, [rbp - 0x60]
mov rcx, rsi
call fcn.140110db0
mov r15, rax
mov eax, dword [r15 + 0x40]
jmp 0x14018432a
mov eax, 4
cdqe
imul rbx, rax, 0x208
lea rax, [0x140378130]
add rbx, rax
xor edi, edi
mov qword [rbp - 0x80], rdi
mov qword [rbp - 0x70], rdi
mov qword [rbp - 0x68], 7
nop
inc r14
cmp word [rbx + r14*2], di
jne 0x140184350
mov r8, r14
mov rdx, rbx
lea rcx, [rbp - 0x80]
call fcn.1400e83c0
lea rdx, [rbp - 0x80]
lea rcx, [rbp + 0x18]
call fcn.1401da4f0
nop
mov r8, rax
lea rdx, str._AsusSystemAnalysisService__SetServiceDescription__MultiLanguageStrings:
lea rcx, [rbp - 0x50]
call fcn.1400d13b0
mov rcx, rax
call fcn.14017eab0
nop
mov rdx, qword [rbp + 0x30]
cmp rdx, 0x10
jb 0x1401843ce
inc rdx
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401843c9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140184521
call fcn.1401e3784
xor edx, edx
xor ecx, ecx
mov r8d, 0xf003f
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rsi, rax
test rax, rax
je 0x140184446
mov r8d, 0xf003f
mov rdx, qword [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rdi, rax
test rax, rax
je 0x14018443b
mov qword [rsp + 0x28], rbx
lea r8, [rsp + 0x28]
mov edx, 1
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
test eax, eax
jne 0x140184432
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.SERVICE_CONFIG_DESCRIPTION_failed_w_err_0x_08lx_n
call fcn.14011c5f0
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor edi, edi
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x140184481
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14018447c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140184503
call fcn.1401e3784
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], SafeArrayGetLBound
mov byte [rbp - 0x28], 0
mov rdx, qword [r12 + 0x18]
cmp rdx, 0x10
jb 0x1401844c9
inc rdx
mov rcx, qword [r12]
cmp rdx, 0x1000
jb 0x1401844c4
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140184509
mov rcx, r8
call fcn.1401e3784
mov qword [r12 + 0x10], rdi
mov qword [r12 + 0x18], SafeArrayGetLBound
mov byte [r12], 0
mov rcx, qword [rbp + 0x38]
xor rcx, rsp
call fcn.1401e3ce0
mov rbx, qword [rsp + 0x190]
add rsp, 0x140
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
int3
call fcn.1400e7e40
int3
call fcn.1400e7cf0
int3
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
int3