Function at 0x140018030
Capabilities:
Create thread
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x498
lea rbp, [rsp + 0x80]
call sym.__main
xor edx, edx
xor ecx, ecx
call qword [sym.imp.kernel32.dll_CreateJobObjectW]
mov dword [rbp + 0x50], 0x1800
mov rbx, qword [sym.imp.kernel32.dll_SetInformationJobObject]
mov r9d, 0x90
mov qword [0x14001a180], rax
mov rcx, rax
lea r8, [rbp + 0x40]
mov edx, 9
call rbx
test eax, eax
jne 0x1400180b8
test byte [0x14001a030], 2
jne 0x140018426
mov rax, qword gs:[0x30]
mov r13d, dword [rax + 0x68]
mov eax, r13d
add rsp, 0x498
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor r8d, r8d
xor edx, edx
or rcx, 0xffffffffffffffff
mov r9d, 1
call qword [sym.imp.kernel32.dll_CreateIoCompletionPort]
mov rcx, qword [0x14001a180]
mov r9d, 0x10
lea r8, [rbp + 0x30]
mov qword [0x14001a170], rax
mov edx, 7
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x30], rcx
call rbx
test eax, eax
jne 0x140018135
test byte [0x14001a030], 2
je 0x140018094
mov rax, qword gs:[0x30]
mov eax, dword [rax + 0x68]
lea r9, str.Failed_to_set_completion_port_for_job__err__lu._n
lea r8, str.main
mov ecx, 1
lea rdx, [0x14001a030]
mov dword [rsp + 0x20], eax
call sym.wine_dbg_log.constprop.0_1
jmp 0x140018094
lea r9, str.__wine_SvcctlStarted
xor r8d, r8d
mov edx, 1
xor ecx, ecx
call qword [sym.imp.kernel32.dll_CreateEventW]
mov dword [rsp + 0x28], 3
xor r9d, r9d
xor r8d, r8d
mov qword [rbp + 0x10], rax
lea rax, [0x14001a3d0]
mov rbx, qword [sym.imp.advapi32.dll_RegCreateKeyExW]
lea rdx, str.SYSTEMCurrentControlSetControlServiceCurrent
mov qword [rsp + 0x40], 0
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x20], 1
call rbx
mov r13d, eax
test eax, eax
jne 0x1400180a1
lea r14, [rbp + 0xd0]
lea rdx, str.SystemCurrentControlSetControl
mov rcx, 0xffffffff80000002
mov r8, r14
call qword [sym.imp.advapi32.dll_RegOpenKeyW]
test eax, eax
jne 0x1400182c0
lea r15, [rbp + 0x20]
lea rdi, [rbp + 0x24]
xor r8d, r8d
mov dword [rbp + 0x24], pe_nt_image_headers64
lea r12, [rbp + 0x200]
mov qword [rsp + 0x28], rdi
mov r9, r15
mov rcx, qword [rbp + 0xd0]
mov qword [rsp + 0x20], r12
mov rsi, qword [sym.imp.advapi32.dll_RegQueryValueExW]
lea rdx, str.ServicesPipeTimeout
call rsi
test eax, eax
jne 0x140018231
cmp dword [rbp + 0x20], 1
jne 0x140018231
mov r8d, 0xa
xor edx, edx
mov rcx, r12
call qword [sym.imp.ucrtbase.dll_wcstol]
mov dword [rbp + 0x28], eax
test eax, eax
je 0x140018231
mov dword [0x14001a3f0], eax
xor r8d, r8d
mov dword [rbp + 0x24], pe_nt_image_headers64
mov r9, r15
mov rcx, qword [rbp + 0xd0]
mov qword [rsp + 0x28], rdi
lea rdx, str.WaitToKillServiceTimeout
mov qword [rsp + 0x20], r12
call rsi
test eax, eax
jne 0x140018280
cmp dword [rbp + 0x20], 1
jne 0x140018280
mov r8d, 0xa
xor edx, edx
mov rcx, r12
call qword [sym.imp.ucrtbase.dll_wcstol]
mov dword [rbp + 0x28], eax
test eax, eax
je 0x140018280
mov dword [0x14001a3e0], eax
lea rax, [rbp + 0x28]
xor r8d, r8d
mov qword [rsp + 0x28], rdi
mov r9, r15
mov dword [rbp + 0x24], 4
mov rcx, qword [rbp + 0xd0]
lea rdx, str.AutoStartDelay
mov qword [rsp + 0x20], rax
call rsi
test eax, eax
je 0x140018844
mov rcx, qword [rbp + 0xd0]
call qword [sym.imp.advapi32.dll_RegCloseKey]
mov rax, qword [sym.imp.ucrtbase.dll_malloc]
mov ecx, 0x58
mov qword [rbp - 0x10], rax
call rax
mov qword [0x14001a060], rax
test rax, rax
je 0x140018fa7
lea rdx, [rax + 0x10]
lea rcx, [rax + 0x30]
mov dword [rax + 8], 0
mov qword [rax + 0x18], rdx
lea rdi, str..._src_wine_programs_services_services.c:_scmdatabase
mov qword [rax + 0x10], rdx
lea rdx, [rax + 0x20]
mov qword [rax + 0x28], rdx
mov qword [rax + 0x20], rdx
call qword [sym.imp.kernel32.dll_InitializeCriticalSection]
mov rax, qword [0x14001a060]
xor r9d, r9d
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov rdx, qword [rax + 0x30]
mov qword [rdx + 0x28], rdi
lea rdx, str.SystemCurrentControlSetServices
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x2000000
mov dword [rsp + 0x20], 0
call rbx
mov ebx, eax
test eax, eax
jne 0x140018a77
lea r12, [rbp + 0x200]
mov r15, qword [0x14001a060]
mov rdi, qword [sym.imp.advapi32.dll_RegEnumKeyW]
mov rax, r12
shr rax, 0x10
mov qword [rbp + 0x18], rax
movzx eax, r12w
mov dword [rbp + 8], eax
jmp 0x1400183a4
lea rsi, [0x14001a030]
test byte [rsi], 2
jne 0x14001845a
inc r13d
mov rcx, qword [r15]
mov r9d, 0x104
mov r8, r12
mov edx, r13d
call rdi
cmp eax, 0x103
je 0x1400185af
test eax, eax
jne 0x140018391
lea rdx, [rbp + 0x28]
mov rcx, r12
call sym.service_create
test eax, eax
jne 0x1400185af
lea rax, [0x14001a030]
test byte [rax], 8
jne 0x1400184d0
mov qword [rsp + 0x20], r14
mov rdx, r12
mov rcx, qword [r15]
mov r9d, 0x20019
xor r8d, r8d
call qword [sym.imp.advapi32.dll_RegOpenKeyExW]
mov edx, eax
test eax, eax
je 0x140018483
lea rax, [0x14001a030]
test byte [rax], 2
jne 0x140018aa3
mov rcx, qword [rbp + 0x28]
call sym.free_service_entry
jmp 0x1400183a1
mov rax, qword gs:[0x30]
mov eax, dword [rax + 0x68]
lea r9, str.Failed_to_initialized_job_object__err__lu._n
lea r8, str.main
mov ecx, 1
lea rdx, [0x14001a030]
mov dword [rsp + 0x20], eax
call sym.wine_dbg_log.constprop.0_1
jmp 0x140018094
mov dword [rsp + 0x28], r13d
mov rdx, rsi
lea r9, str.Error__ld_reading_key__d_name___skipping_n
lea r8, str.scmdatabase_load_services
mov dword [rsp + 0x20], eax
mov ecx, 1
call sym.wine_dbg_log.constprop.0_1
jmp 0x1400183a1
mov rbx, qword [rbp + 0x28]
mov rsi, qword [rbp + 0xd0]
lea rdx, str.ImagePath
mov r8d, 1
mov dword [rbp + 0x24], 0
lea r9, [rbx + 0x60]
mov rcx, rsi
call sym.load_reg_string
mov edx, eax
test eax, eax
je 0x14001861c
mov dword [rbp], edx
mov rcx, qword [rbp + 0xd0]
call qword [sym.imp.advapi32.dll_RegCloseKey]
mov edx, dword [rbp]
jmp 0x140018408
cmp qword [rbp + 0x18], 0
je 0x140018a8c
or rdx, 0xffffffffffffffff
mov rcx, r12
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
lea rdx, [0x14001b59d]
test eax, eax
je 0x14001851e
mov qword [rsp + 0x20], rdx
lea r9, str.Loading_service__s_n
lea r8, str.scmdatabase_load_services
mov ecx, 3
lea rdx, [0x14001a030]
call sym.wine_dbg_log.constprop.0_1
jmp 0x1400183e8
inc eax
movsxd rdx, eax
cmp word [rbp + rdx*2 + 0x200], 0
jne 0x14001851c
mov word [rbp + 0xd0], 0x224c
lea rdx, [rbp + 0xd2]
mov rcx, r12
lea r9, [rbp + 0x1f2]
jmp 0x140018568
cmp ax, 9
je 0x140018a3c
cmp ax, 0xa
jne 0x1400189d2
mov word [rdx], 0x6e5c
add rdx, 2
mov eax, r8d
lea r8d, [rax - 1]
test eax, eax
jle 0x140018a4a
cmp rdx, r9
ja 0x140018a4a
movzx eax, word [rcx]
add rcx, 2
cmp ax, 0xd
je 0x1400189b5
jbe 0x140018548
cmp ax, 0x22
je 0x140018a2e
cmp ax, 0x5c
jne 0x1400189c3
mov word [rdx], 0x5c5c
add rdx, 2
jmp 0x140018565
call sym.RPC_Init
mov dword [rbp - 0x14], eax
test eax, eax
je 0x14001885c
mov rsi, qword [sym.imp.ucrtbase.dll_free]
mov r12, qword [0x14001a060]
mov rcx, qword [r12]
call qword [sym.imp.advapi32.dll_RegCloseKey]
mov rax, qword [r12 + 0x30]
lea rcx, [r12 + 0x30]
mov qword [rax + 0x28], 0
call qword [sym.imp.kernel32.dll_DeleteCriticalSection]
mov rcx, r12
call rsi
mov rcx, qword [0x14001a140]
test rcx, rcx
je 0x140018606
call qword [sym.imp.userenv.dll_DestroyEnvironmentBlock]
test byte [0x14001a030], 8
jne 0x140018ae8
mov r13d, dword [rbp - 0x14]
jmp 0x1400180a1
lea rdx, str.Group
lea r9, [rbx + 0x68]
xor r8d, r8d
mov rcx, rsi
call sym.load_reg_string
mov edx, eax
test eax, eax
jne 0x1400184b8
lea rdx, str.ObjectName
lea r9, [rbx + 0x80]
mov r8d, 1
mov rcx, rsi
call sym.load_reg_string
mov edx, eax
test eax, eax
jne 0x1400184b8
lea rdx, str.DisplayName
lea r9, [rbx + 0x88]
xor r8d, r8d
mov rcx, rsi
call sym.load_reg_string
mov edx, eax
test eax, eax
jne 0x1400184b8
lea rdx, str.Description
lea r9, [rbx + 0x98]
xor r8d, r8d
mov rcx, rsi
call sym.load_reg_string
mov edx, eax
test eax, eax
jne 0x1400184b8
lea rdx, str.DependOnService
lea r9, [rbx + 0xa0]
mov r8d, 1
mov rcx, rsi
call sym.load_reg_multisz
mov edx, eax
test eax, eax
jne 0x1400184b8
lea rdx, str.DependOnGroup
lea r9, [rbx + 0xa8]
xor r8d, r8d
mov rcx, rsi
call sym.load_reg_multisz
mov edx, eax
test eax, eax
jne 0x1400184b8
lea rdx, str.Type
lea r8, [rbx + 0x50]
mov rcx, rsi
call sym.load_reg_dword
mov edx, eax
test eax, eax
jne 0x1400184b8
lea rdx, str.Start
lea r8, [rbx + 0x54]
mov rcx, rsi
call sym.load_reg_dword
mov edx, eax
test eax, eax
jne 0x1400184b8
lea rdx, str.ErrorControl
lea r8, [rbx + 0x58]
mov rcx, rsi
call sym.load_reg_dword
mov edx, eax
test eax, eax
jne 0x1400184b8
lea rdx, [0x14001bf50]
lea r8, [rbx + 0x70]
mov rcx, rsi
call sym.load_reg_dword
mov edx, eax
test eax, eax
jne 0x1400184b8
lea rdx, str.PreshutdownTimeout
lea r8, [rbx + 0x90]
mov rcx, rsi
call sym.load_reg_dword
mov edx, eax
test eax, eax
jne 0x1400184b8
lea r8, [rbp + 0x24]
lea rdx, str.WOW64
mov rcx, rsi
mov qword [rbp], r8
call sym.load_reg_dword
mov r8, qword [rbp]
test eax, eax
jne 0x1400187b4
cmp dword [rbp + 0x24], 1
jne 0x1400187b4
mov dword [rbx + 0xc4], 1
lea rdx, str.DelayedAutoStart
mov rcx, rsi
call sym.load_reg_dword
test eax, eax
jne 0x1400187d7
cmp dword [rbp + 0x24], 1
jne 0x1400187d7
mov dword [rbx + 0xc8], 1
lea rax, [0x14001a030]
test byte [rax], 8
jne 0x14001914e
mov r10, qword [rbx + 0xa0]
mov rax, r12
lea rsi, str.______s_n
mov r12, rbx
mov rbx, r10
mov r10, rax
lea rax, [0x14001a030]
movzx eax, byte [rax]
mov byte [rbp], al
and eax, 8
cmp word [rbx], 0
je 0x140018fb1
test al, al
jne 0x140018f50
mov rax, rbx
jmp 0x14001882c
add rax, 2
cmp word [rax], 0
jne 0x140018828
sub rax, rbx
sar rax, 1
inc eax
cdqe
add rax, rax
add rbx, rax
jmp 0x140018801
cmp dword [rbp + 0x20], 4
jne 0x1400182b3
mov eax, dword [rbp + 0x28]
mov dword [0x14001a070], eax
jmp 0x1400182b3
mov rax, qword [0x14001a060]
mov ecx, 0x100
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x10]
call rax
mov qword [rbp + 8], rax
test rax, rax
je 0x140018f85
mov r9d, 4
xor r8d, r8d
lea rdx, str.ROOT
xor ecx, ecx
call qword [sym.imp.setupapi.dll_SetupDiGetClassDevsW]
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x140018e7c
mov rdi, qword [rbp - 0x28]
lea rax, [rdi + 0x30]
mov qword [rbp - 0x30], rax
mov rcx, rax
mov rax, qword [sym.imp.kernel32.dll_EnterCriticalSection]
mov qword [rbp - 0x20], rax
call rax
lea rax, [rdi + 0x20]
mov dword [rbp + 0x18], 0
mov rsi, qword [rdi + 0x20]
mov dword [rbp - 8], 0x20
mov r15, qword [sym.imp.setupapi.dll_SetupDiGetDeviceRegistryPropertyW]
mov qword [rbp], rax
cmp rsi, qword [rbp]
je 0x140018b13
cmp dword [rsi + 0x54], 2
jbe 0x14001896d
cmp r13, 0xffffffffffffffff
je 0x1400189ad
mov ecx, 8
xor eax, eax
mov rdi, r14
xor ebx, ebx
rep stosd dword [rdi], eax
mov rdi, qword [sym.imp.setupapi.dll_SetupDiEnumDeviceInfo]
mov dword [rbp + 0xd0], 0x20
mov r8, r14
mov edx, ebx
mov rcx, r13
call rdi
test eax, eax
je 0x1400189ad
xor r9d, r9d
mov qword [rsp + 0x20], r12
mov rdx, r14
mov rcx, r13
mov qword [rsp + 0x30], 0
mov r8d, 4
mov dword [rsp + 0x28], 0x208
call r15
test eax, eax
jne 0x14001895c
inc ebx
jmp 0x14001891a
mov rdx, qword [rsi + 0x20]
mov rcx, r12
call qword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
jne 0x140018958
mov eax, dword [rbp + 0x18]
lea ebx, [rax + 1]
mov eax, dword [rbp - 8]
cmp ebx, eax
jb 0x14001899b
lea edx, [rax + rax]
mov rcx, qword [rbp + 8]
mov dword [rbp - 8], edx
shl rdx, 3
call qword [sym.imp.ucrtbase.dll_realloc]
test rax, rax
je 0x140018b13
mov qword [rbp + 8], rax
lock inc dword [rsi + 0x18]
mov eax, dword [rbp + 0x18]
mov rdi, qword [rbp + 8]
mov dword [rbp + 0x18], ebx
mov qword [rdi + rax*8], rsi
mov rsi, qword [rsi]
jmp 0x1400188e1
mov word [rdx], 0x725c
add rdx, 2
jmp 0x140018565
lea r10d, [rax - 0x20]
cmp r10w, 0x5e
jbe 0x140018ade
mov r10d, eax
lea rsi, [0x14001d630]
mov byte [rdx], 0x5c
add rdx, 5
shr r10w, 0xc
and r10d, 0xf
movzx r10d, byte [rsi + r10]
mov byte [rdx - 4], r10b
mov r10d, eax
shr r10w, 8
and r10d, 0xf
movzx r10d, byte [rsi + r10]
mov byte [rdx - 3], r10b
mov r10d, eax
and eax, 0xf
shr r10w, 4
movzx eax, byte [rsi + rax]
and r10d, 0xf
movzx r10d, byte [rsi + r10]
mov byte [rdx - 1], al
mov byte [rdx - 2], r10b
jmp 0x140018565
mov word [rdx], 0x225c
add rdx, 2
jmp 0x140018565
mov word [rdx], 0x745c
add rdx, 2
jmp 0x140018565
mov byte [rdx], 0x22
lea rax, [rdx + 1]
test r8d, r8d
jle 0x140018a64
mov word [rdx + 1], 0x2e2e
lea rax, [rdx + 4]
mov byte [rdx + 3], 0x2e
mov byte [rax], 0
mov rcx, r14
call sym.__wine_dbg_strdup
mov rdx, rax
jmp 0x1400184f3
mov rcx, qword [0x14001a060]
call qword [sym.imp.ucrtbase.dll_free]
mov r13d, ebx
jmp 0x1400180a1
mov edx, dword [rbp + 8]
lea rcx, [0x14001b590]
call sym.wine_dbg_sprintf.constprop.0_1
mov rdx, rax
jmp 0x1400184f3
mov rcx, r12
mov dword [rbp], edx
call sym.wine_dbgstr_wn.constprop.0_1
mov edx, dword [rbp]
mov ecx, 1
lea r9, str.Error__ld_reading_registry_key_for_service__s___skipping_n
mov qword [rsp + 0x28], rax
lea r8, str.scmdatabase_load_services
mov dword [rsp + 0x20], edx
lea rdx, [0x14001a030]
call sym.wine_dbg_log.constprop.0_1
jmp 0x140018418
mov byte [rdx], al
inc rdx
jmp 0x140018565
mov eax, dword [rbp - 0x14]
lea r9, str.services.exe_exited_with_code__ld_n
lea r8, str.main
mov ecx, 3
lea rdx, [0x14001a030]
mov dword [rsp + 0x20], eax
call sym.wine_dbg_log.constprop.0_1
jmp 0x140018613
mov rax, qword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov rcx, qword [rbp - 0x30]
xor esi, esi
xor ebx, ebx
lea rdi, [0x14001a030]
mov qword [rbp], rax
call rax
mov r15, qword [rbp + 8]
mov edx, dword [rbp + 0x18]
lea r9, [sym.compare_tags]
mov r8d, 8
mov rcx, r15
call qword [sym.imp.ucrtbase.dll_qsort]
mov rcx, qword [rbp - 0x28]
or edx, 0xffffffff
call sym.scmdatabase_lock_startup
mov qword [rbp - 0x30], r12
mov r12, rsi
mov esi, dword [rbp + 0x18]
mov qword [rbp - 8], r13
jmp 0x140018b7f
lea rax, [0x14001a030]
test byte [rax], 8
jne 0x140018bbf
mov eax, ebx
inc ebx
mov qword [r15 + rax*8], r13
inc r12
cmp esi, r12d
jbe 0x140018bea
mov r13, qword [r15 + r12*8]
cmp dword [r13 + 0xc8], 0
jne 0x140018b68
xor edx, edx
xor r8d, r8d
mov rcx, r13
call sym.service_start
mov edx, eax
test eax, eax
je 0x140018bb5
lea rax, [0x14001a030]
test byte [rax], 1
jne 0x140018e35
mov rcx, r13
call sym.release_service
jmp 0x140018b7c
mov rcx, qword [r13 + 0x20]
call sym.wine_dbgstr_wn.constprop.0_1
lea r9, str.delayed_starting__s_n
mov rdx, rdi
lea r8, str.scmdatabase_autostart_services
mov qword [rsp + 0x20], rax
mov ecx, 3
call sym.wine_dbg_log.constprop.0_1
jmp 0x140018b74
mov r13, qword [rbp - 8]
mov r12, qword [rbp - 0x30]
xor esi, esi
mov eax, 1
mov rdi, qword [rbp - 0x28]
lock cmpxchg dword [rdi + 8], esi
test ebx, ebx
je 0x140018e6a
call qword [sym.imp.kernel32.dll_CreateThreadpoolCleanupGroup]
mov qword [0x14001a0c0], rax
mov r15, rax
test rax, rax
je 0x140018ebd
mov rax, qword [rbp - 0x10]
mov ecx, 0x10
call rax
mov r10, rax
test rax, rax
je 0x140018e6a
mov dword [rax], ebx
mov rax, qword [rbp + 8]
mov ecx, 0x10
mov rdi, r12
mov qword [rbp + 0x18], r10
mov rdx, r10
mov r8, r12
mov qword [r10 + 8], rax
mov eax, esi
rep stosd dword [rdi], eax
lea rax, [sym.delayed_autostart_cancel_callback]
lea rcx, [sym.delayed_autostart_callback]
mov dword [rbp + 0x200], 1
mov qword [rbp + 0x218], rax
mov eax, dword [0x14001a070]
mov qword [rbp + 0x210], r15
imul rax, rax, 0xffffffffffffd8f0
mov dword [rbp + 0xd0], eax
sar rax, 0x20
mov dword [rbp + 0xd4], eax
call qword [sym.imp.kernel32.dll_CreateThreadpoolTimer]
mov r10, qword [rbp + 0x18]
test rax, rax
mov rcx, rax
je 0x140018f01
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
call qword [sym.imp.kernel32.dll_SetThreadpoolTimer]
mov rsi, qword [sym.imp.ucrtbase.dll_free]
mov rcx, r13
call qword [sym.imp.setupapi.dll_SetupDiDestroyDeviceInfoList]
xor r9d, r9d
lea r8, [sym.process_monitor_thread_proc]
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
call qword [sym.imp.kernel32.dll_CreateThread]
mov rcx, qword [rbp + 0x10]
mov r13, rax
call qword [sym.imp.kernel32.dll_SetEvent]
mov rcx, qword [0x14001a150]
mov r14, qword [sym.imp.kernel32.dll_WaitForSingleObject]
or edx, 0xffffffff
call r14
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [0x14001a170]
xor edx, edx
call qword [sym.imp.kernel32.dll_PostQueuedCompletionStatus]
mov rcx, r13
or edx, 0xffffffff
call r14
mov rbx, qword [0x14001a060]
mov rax, qword [rbp - 0x20]
mov qword [rbp + 0x200], r12
mov qword [rbp + 0x208], r12
lea r13, [rbx + 0x30]
lea rdi, [rbx + 0x10]
mov rcx, r13
call rax
mov rax, qword [rbx + 0x10]
cmp rdi, rax
je 0x140018def
mov rdx, qword [rbp + 0x208]
mov qword [rdx], rax
mov rdx, qword [rbp + 0x208]
mov qword [rax + 8], rdx
mov rax, qword [rbx + 0x18]
mov qword [rbp + 0x208], rax
mov qword [rax], r12
mov qword [rbx + 0x18], rdi
mov qword [rbx + 0x10], rdi
jmp 0x140018def
cmp r15, r12
je 0x140018dfb
lock inc dword [r15 + 0x18]
mov rcx, r15
call sym.process_terminate
mov rax, qword [rbp]
mov rcx, r13
call rax
or edx, 0xffffffff
mov rcx, qword [r15 + 0x28]
call r14
mov rax, qword [rbp - 0x20]
mov rcx, r13
call rax
mov rdx, qword [r15]
mov rax, qword [r15 + 8]
mov rcx, r15
mov qword [rdx + 8], rax
mov rdx, qword [r15]
mov qword [rax], rdx
mov qword [r15], rdi
mov rax, qword [rbx + 0x18]
mov qword [r15 + 8], rax
mov qword [rax], r15
mov qword [rbx + 0x18], r15
call sym.release_process
mov r15, qword [rbp + 0x200]
test r15, r15
jne 0x140018d96
mov rcx, r13
mov rax, qword [rbp]
call rax
mov rcx, qword [0x14001a0c0]
test rcx, rcx
je 0x140018e2b
xor r8d, r8d
mov edx, 1
call qword [sym.imp.kernel32.dll_CloseThreadpoolCleanupGroupMembers]
mov rcx, qword [0x14001a0c0]
call qword [sym.imp.kernel32.dll_CloseThreadpoolCleanupGroup]
call sym.RPC_Stop
jmp 0x1400185c6
mov rcx, qword [r13 + 0x20]
mov dword [rbp + 0x18], edx
call sym.wine_dbgstr_wn.constprop.0_1
mov edx, dword [rbp + 0x18]
lea r9, str.Auto_start_service__s_failed_to_start:__ld_n
xor ecx, ecx
mov qword [rsp + 0x20], rax
lea r8, str.scmdatabase_autostart_services
mov dword [rsp + 0x28], edx
mov rdx, rdi
call sym.wine_dbg_log.constprop.0_1
jmp 0x140018bb5
mov rsi, qword [sym.imp.ucrtbase.dll_free]
mov rcx, qword [rbp + 8]
call rsi
jmp 0x140018cc9
test byte [0x14001a030], 2
je 0x1400188a4
mov rax, qword gs:[0x30]
mov eax, dword [rax + 0x68]
lea r9, str.Failed_to_enumerate_devices__error__lx._n
lea r8, str.scmdatabase_autostart_services
mov ecx, 1
lea rdx, [0x14001a030]
mov dword [rsp + 0x20], eax
call sym.wine_dbg_log.constprop.0_1
jmp 0x1400188a4
test byte [0x14001a030], 2
je 0x140018e6a
mov rax, qword gs:[0x30]
mov eax, dword [rax + 0x68]
lea r9, str.CreateThreadpoolCleanupGroup_failed_with_error__lu_n
lea r8, str.schedule_delayed_autostart
mov ecx, 1
lea rdx, [0x14001a030]
mov dword [rsp + 0x20], eax
call sym.wine_dbg_log.constprop.0_1
mov rsi, qword [sym.imp.ucrtbase.dll_free]
jmp 0x140018e71
test byte [0x14001a030], 2
jne 0x140018f1b
mov rsi, qword [sym.imp.ucrtbase.dll_free]
mov rcx, r10
call rsi
jmp 0x140018e71
mov rax, qword gs:[0x30]
mov eax, dword [rax + 0x68]
lea r9, str.CreateThreadpoolWait_failed:__lu_n
lea r8, str.schedule_delayed_autostart
mov ecx, 1
lea rdx, [0x14001a030]
mov dword [rsp + 0x20], eax
call sym.wine_dbg_log.constprop.0_1
mov r10, qword [rbp + 0x18]
jmp 0x140018f0a
mov rcx, rbx
mov qword [rbp], r10
call sym.wine_dbgstr_wn.constprop.0_1
mov r9, rsi
mov ecx, 3
lea r8, str.load_service_config
mov qword [rsp + 0x20], rax
lea rdx, [0x14001a030]
call sym.wine_dbg_log.constprop.0_1
mov r10, qword [rbp]
jmp 0x140018823
mov rax, qword [sym.imp.kernel32.dll_EnterCriticalSection]
mov rsi, qword [sym.imp.ucrtbase.dll_free]
mov qword [rbp - 0x20], rax
mov rax, qword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov qword [rbp], rax
jmp 0x140018cd2
mov ebx, 0x46a
jmp 0x140018a84
mov rbx, r12
mov r12, r10
test al, al
je 0x140018ffc
mov rax, qword [rbx + 0xa8]
lea rdx, str._none_
lea r9, str.Group_dependencies___:__s_n
mov ecx, 3
lea r8, str.load_service_config
cmp word [rax], 0
lea rax, [0x14001b8ac]
cmove rax, rdx
lea rdx, [0x14001a030]
mov qword [rsp + 0x20], rax
call sym.wine_dbg_log.constprop.0_1
mov r10, qword [rbx + 0xa8]
lea rsi, str.______s_n
lea rbx, str.load_service_config
xchg r12, r10
cmp word [r12], 0
je 0x140019077
lea rax, [0x14001a030]
test byte [rax], 8
jne 0x140019049
mov rax, r12
jmp 0x140019031
add rax, 2
cmp word [rax], 0
jne 0x14001902d
sub rax, r12
sar rax, 1
inc eax
cdqe
add rax, rax
add r12, rax
jmp 0x140019014
mov rcx, r12
mov qword [rbp], r10
call sym.wine_dbgstr_wn.constprop.0_1
mov r9, rsi
mov r8, rbx
mov ecx, 3
mov qword [rsp + 0x20], rax
lea rdx, [0x14001a030]
call sym.wine_dbg_log.constprop.0_1
mov r10, qword [rbp]
jmp 0x140019028
mov rcx, qword [rbp + 0xd0]
mov r12, r10
call qword [sym.imp.advapi32.dll_RegCloseKey]
mov rcx, qword [rbp + 0x28]
cmp dword [rcx + 0x50], 0
jne 0x1400190d2
lea rax, [0x14001a030]
test byte [rax], 8
je 0x14001841c
mov rcx, r12
call sym.wine_dbgstr_wn.constprop.0_1
lea r9, str.Even_the_service_type_not_set_for_service__s___skipping_n
mov ecx, 3
lea r8, str.scmdatabase_load_services
mov qword [rsp + 0x20], rax
lea rdx, [0x14001a030]
call sym.wine_dbg_log.constprop.0_1
jmp 0x140018418
call sym.validate_service_config
test eax, eax
jne 0x14001911c
lea rax, [0x14001a030]
test byte [rax], 2
je 0x140018418
mov rcx, r12
call sym.wine_dbgstr_wn.constprop.0_1
lea r9, str.Invalid_configuration_of_service__s___skipping_n
mov ecx, 1
lea r8, str.scmdatabase_load_services
mov qword [rsp + 0x20], rax
lea rdx, [0x14001a030]
call sym.wine_dbg_log.constprop.0_1
jmp 0x140018418
mov rax, qword [rbp + 0x28]
mov edx, dword [rax + 0x50]
mov qword [rax + 0x10], r15
mov dword [rax + 0x28], edx
lea rdx, [r15 + 0x20]
mov qword [rax], rdx
mov rdx, qword [r15 + 0x28]
mov qword [rax + 8], rdx
mov qword [rdx], rax
mov qword [r15 + 0x28], rax
mov rcx, qword [rbp + 0x28]
call sym.release_service
jmp 0x1400183a1
mov rcx, qword [rbx + 0x60]
lea rsi, [0x14001a030]
call sym.wine_dbgstr_wn.constprop.0_1
lea r9, str.Image_path_____________s_n
mov ecx, 3
lea r8, str.load_service_config
mov qword [rsp + 0x20], rax
lea rdx, [0x14001a030]
call sym.wine_dbg_log.constprop.0_1
test byte [rsi], 8
je 0x1400187e7
mov rcx, qword [rbx + 0x68]
call sym.wine_dbgstr_wn.constprop.0_1
lea r9, str.Group__________________s_n
mov rdx, rsi
lea r8, str.load_service_config
mov qword [rsp + 0x20], rax
mov ecx, 3
call sym.wine_dbg_log.constprop.0_1
test byte [rsi], 8
je 0x1400187e7
mov rcx, qword [rbx + 0x80]
call sym.wine_dbgstr_wn.constprop.0_1
lea r9, str.Service_account_name___s_n
mov rdx, rsi
lea r8, str.load_service_config
mov qword [rsp + 0x20], rax
mov ecx, 3
call sym.wine_dbg_log.constprop.0_1
test byte [rsi], 8
je 0x1400187e7
mov rcx, qword [rbx + 0x88]
call sym.wine_dbgstr_wn.constprop.0_1
lea r9, str.Display_name___________s_n
mov rdx, rsi
lea r8, str.load_service_config
mov qword [rsp + 0x20], rax
mov ecx, 3
call sym.wine_dbg_log.constprop.0_1
test byte [rsi], 8
je 0x1400187e7
mov rax, qword [rbx + 0xa0]
lea rdx, str._none_
lea r9, str.Service_dependencies_:__s_n
mov ecx, 3
lea r8, str.load_service_config
cmp word [rax], 0
lea rax, [0x14001b8ac]
cmove rax, rdx
mov rdx, rsi
mov qword [rsp + 0x20], rax
call sym.wine_dbg_log.constprop.0_1
jmp 0x1400187e7