Function at 0x1400df3f0
Capabilities:
Start service

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov ebx, edx
xor r8d, r8d
lea rdx, str.CBaseOSSpecTypeWin2K::DIASServiceControl
lea rcx, [rbp - 0x18]
call fcn.1400075a0
nop
mov r9d, ebx
lea r8, str.nCtrlFlag___d
mov edx, 1
lea rcx, [rbp - 0x18]
call fcn.140007780
xor edx, edx
xor ecx, ecx
mov r8d, 0x20000000
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov r12, rax
test rax, rax
jne 0x1400df4ec
xor edi, edi
mov qword [rbp + 0x30], rdi
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], edi
lea rax, [rbp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 0x409
mov r8d, esi
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
test eax, eax
je 0x1400df4b9
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
lea r9, str._t_t_tOpenSCManager
lea r8, str.ApiName:__s__ErrorCode:__d_:__s
lea edx, [rdi + 6]
lea rcx, [rbp - 0x18]
call fcn.140007780
mov rcx, qword [rbp + 0x30]
test rcx, rcx
je 0x1400df4c8
call qword [sym.imp.KERNEL32.dll_LocalFree]
test ebx, ebx
jne 0x1400df6d2
xor r9d, r9d
lea r8, str.return___08x
lea edx, [rbx + 2]
lea rcx, [rbp - 0x18]
call fcn.140007780
nop
jmp 0x1400df725
mov r8d, 0xf01ff
lea rdx, str.Canon_Driver_Information_Assist_Service
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rsi, rax
test rax, rax
jne 0x1400df5ab
xor edi, edi
mov qword [rbp + 0x30], rdi
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], edi
lea rax, [rbp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 0x409
mov r8d, esi
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
test eax, eax
je 0x1400df56f
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
lea r9, str._t_t_tOpenService
lea r8, str.ApiName:__s__ErrorCode:__d_:__s
lea edx, [rdi + 6]
lea rcx, [rbp - 0x18]
call fcn.140007780
mov rcx, qword [rbp + 0x30]
test rcx, rcx
je 0x1400df57e
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test ebx, ebx
jne 0x1400df6d2
xor r9d, r9d
lea r8, str.return___08x
lea edx, [rbx + 2]
lea rcx, [rbp - 0x18]
call fcn.140007780
nop
jmp 0x1400df725
mov rcx, rax
test ebx, ebx
je 0x1400df6fe
xor r8d, r8d
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
jne 0x1400df631
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea rdx, str._t_t_tStartService
lea rcx, [rbp - 0x18]
call fcn.140029dc0
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp ebx, 0x420
jne 0x1400df6d2
mov r9d, 1
lea r8, str.return___08x
lea edx, [r9 + 1]
lea rcx, [rbp - 0x18]
call fcn.140007780
nop
lea rcx, [rbp - 0x18]
call fcn.140007730
mov eax, 1
jmp 0x1400df730
xor ecx, ecx
call fcn.140249aec
mov rbx, rax
xor ecx, ecx
call fcn.140249aec
mov rdi, rax
sub rbx, rax
cmp rbx, 0x1e
jge 0x1400df6d2
mov rcx, qword [0x1403b9758]
mov rdx, qword [rcx]
call qword [rdx + 0x20]
mov r8, qword [rax]
lea rdx, str.Canon_Driver_Information_Assist_Service
mov rcx, rax
call qword [r8 + 0x1f0]
cmp eax, 4
je 0x1400df695
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
xor ecx, ecx
call fcn.140249aec
sub rax, rdi
cmp rax, 0x1e
jl 0x1400df652
jmp 0x1400df6d2
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov r9d, 1
lea r8, str.return___08x
lea edx, [r9 + 1]
lea rcx, [rbp - 0x18]
call fcn.140007780
nop
lea rcx, [rbp - 0x18]
call fcn.140007730
mov eax, 1
jmp 0x1400df730
mov rcx, qword [0x1403b9770]
mov rax, qword [rcx]
mov edx, reloc.OLEAUT32.dll_UnRegisterTypeLib
call qword [rax + 0x18]
xor r9d, r9d
lea r8, str.return___08x
lea edx, [r9 + 2]
lea rcx, [rbp - 0x18]
call fcn.140007780
nop
jmp 0x1400df725
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor r9d, r9d
lea r8, str.return___08x
lea edx, [r9 + 2]
lea rcx, [rbp - 0x18]
call fcn.140007780
nop
lea rcx, [rbp - 0x18]
call fcn.140007730
xor eax, eax
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop r12
pop rdi
pop rbp
ret