Function at 0x1400ccf40
Capabilities:
Modify service

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rsi, r8
mov r13, rdx
mov r14, rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x80], 0
lea rcx, [rsp + 0x40]
mov rdx, r8
call sym.windows_service::service::to_wide_slice::h6be03493f81c0a2a
movabs rbp, 0x8000000000000000
mov rdx, qword [rsp + 0x40]
cmp rdx, rbp
je 0x1400cd04b
test rdx, rdx
je 0x1400cd04b
movabs r15, 0x8000000000000001
cmp rdx, r15
jne 0x1400cd038
mov rdi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
lea rdx, [rsi + 0x20]
lea rcx, [rsp + 0x40]
call sym.windows_service::service::to_wide_slice::h6be03493f81c0a2a
mov rdx, qword [rsp + 0x40]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x1400cd092
test rdx, rdx
je 0x1400cd092
cmp rdx, r15
jne 0x1400cd07f
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x38], rax
mov r15, qword [rsi + 0x40]
cmp r15, rbp
jne 0x1400cd109
mov r12, rbp
mov ecx, 0xffffffff
cmp dword [rsi + 0x60], 0x3b9aca00
mov r15, qword [rsp + 0x30]
jne 0x1400cd167
jmp 0x1400cd178
mov rcx, qword [rsp + 0x48]
add rdx, rdx
mov r8d, 2
call sym.__rust_dealloc
lea rax, [rbp + 4]
mov qword [r14], rax
lea rax, [0x14019815d]
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], 0x26
mov rdx, qword [rsi + 0x20]
cmp rdx, rbp
je 0x1400cd0cd
test rdx, rdx
je 0x1400cd0cd
mov rcx, qword [rsi + 0x28]
mov r8d, 1
jmp 0x1400cd0c8
mov rcx, qword [rsp + 0x48]
add rdx, rdx
mov r8d, 2
call sym.__rust_dealloc
lea rax, [rbp + 4]
mov qword [r14], rax
lea rax, [0x14019813e]
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], 0x1f
lea rax, [rdi*2]
test rax, rax
je 0x1400cd0cd
add rdi, rdi
mov r8d, 2
mov rcx, rbx
mov rdx, rdi
call sym.__rust_dealloc
mov rax, qword [rsi + 0x40]
cmp rax, rbp
je 0x1400cd0f2
test rax, rax
je 0x1400cd0f2
mov rcx, qword [rsi + 0x48]
shl rax, 3
lea rdx, [rax + rax*2]
mov r8d, 8
call sym.__rust_dealloc
mov rax, r14
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r12, qword [rsi + 0x48]
mov rax, qword [rsi + 0x50]
lea rax, [rax + rax*2]
lea r8, [r12 + rax*8]
lea rcx, [rsp + 0x40]
mov rdx, r12
call sym._ZN98__LT_alloc..vec..Vec_LT_T_GT__u20_as_u20_alloc..vec..spec_from_iter..SpecFromIter_LT_T_C_I_GT__GT_9from_iter17he8d7091b26
test r15, r15
je 0x1400cd141
shl r15, 3
lea rdx, [r15 + r15*2]
mov r8d, 8
mov rcx, r12
call sym.__rust_dealloc
mov r12, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x50]
mov ecx, 0xffffffff
cmp dword [rsi + 0x60], 0x3b9aca00
mov r15, qword [rsp + 0x30]
je 0x1400cd178
mov rcx, qword [rsi + 0x58]
mov rdx, rcx
shr rdx, 0x20
jne 0x1400cd27d
xor edx, edx
cmp rdi, rbp
mov r8, rbx
cmove r8, rdx
cmp r15, rbp
mov r9, qword [rsp + 0x38]
cmove r9, rdx
mov dword [rsp + 0x60], ecx
cmp r12, rbp
cmove eax, edx
mov qword [rsp + 0x68], r8
mov rcx, qword [rsp + 0x28]
cmove rcx, rdx
mov qword [rsp + 0x70], r9
mov dword [rsp + 0x78], eax
mov qword [rsp + 0x80], rcx
mov rcx, qword [r13]
lea r8, [rsp + 0x60]
mov edx, 2
call sub.advapi32.dll_ChangeServiceConfig2W
test eax, eax
je 0x1400cd21b
add rbp, 7
mov qword [r14], rbp
lea rax, [r12*2]
test rax, rax
je 0x1400cd1fb
shl r12, 3
mov r8d, 4
mov rcx, qword [rsp + 0x28]
mov rdx, r12
call sym.__rust_dealloc
lea rax, [r15*2]
test rax, rax
jne 0x1400cd242
lea rax, [rdi*2]
test rax, rax
je 0x1400cd0f2
jmp 0x1400cd269
call sym.std::sys::pal::windows::os::errno::h64d3f6efc49f2d2e
shl rax, 0x20
or rax, 2
add rbp, 6
mov qword [r14], rbp
mov qword [r14 + 8], rax
lea rax, [r12*2]
test rax, rax
je 0x1400cd1fb
jmp 0x1400cd1e4
add r15, r15
mov r8d, 2
mov rcx, qword [rsp + 0x38]
mov rdx, r15
call sym.__rust_dealloc
lea rax, [rdi*2]
test rax, rax
je 0x1400cd0f2
add rdi, rdi
mov r8d, 2
mov rcx, rbx
mov rdx, rdi
jmp 0x1400cd0ed
lea rax, [0x140197fe8]
mov qword [rsp + 0x20], rax
lea rcx, str.Too_long_reset_period
lea r9, [0x140197af0]
lea r8, [rsp + 0x40]
mov edx, 0x15
call sym.core::result::unwrap_failed::h8f275d6668207d54
ud2