Function at 0x1400012f0
Capabilities:
Install driver
Unload driver

Disassembly:
push r14
push r13
push r12
push rbx
sub rsp, 0x58
mov ebx, ecx
mov r12, r8
test ecx, ecx
js 0x1400013d8
mov edx, ecx
movzx eax, byte [0x140003020]
and edx, 0xfffffffb
cmp edx, 1
je 0x140001370
test al, 1
jne 0x1400015b0
mov dword [rsp + 0x48], 0
lea rdx, [rsp + 0x30]
xor r13d, r13d
movabs rax, 0x400000030
mov qword [rsp + 0x30], rax
mov rcx, qword [0x140007010]
mov qword [rsp + 0x38], 5
mov qword [rsp + 0x40], 0
call qword [sym.imp.advapi32.dll_SetServiceStatus]
mov eax, r13d
add rsp, 0x58
pop rbx
pop r12
pop r13
pop r14
ret
test al, 8
jne 0x140001530
lea rdx, [rsp + 0x30]
mov rcx, qword [0x140007010]
xor r13d, r13d
movabs rax, 0x300000030
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x48], 0
call qword [sym.imp.advapi32.dll_SetServiceStatus]
mov rcx, qword [section..bss]
call qword [sym.imp.kernel32.dll_SetEvent]
mov eax, r13d
add rsp, 0x58
pop rbx
pop r12
pop r13
pop r14
ret
mov r13d, 0x57
test r8, r8
je 0x14000135f
and ebx, 0x7fffffff
cmp word [r8], 0
je 0x140001688
mov rax, r8
nop dword [rax + rax]
add rax, 2
cmp word [rax], 0
jne 0x140001400
sub rax, r12
sar rax, 1
cdqe
lea r8, [rax + rax + 0x6a]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
xor edx, edx
mov rcx, qword [rax + 0x30]
call qword [sym.imp.kernel32.dll_HeapAlloc]
mov rdx, rax
test rax, rax
je 0x1400016da
mov rcx, rax
mov r8d, 0x5c
lea r9, str.RegistryMachineSystemCurrentControlSetServices_
jmp 0x140001454
movzx r8d, word [r9]
add rcx, 2
add r9, 2
mov word [rcx - 2], r8w
test r8w, r8w
jne 0x140001450
cmp word [rdx], 0
mov r9, rdx
je 0x14000147b
add r9, 2
cmp word [r9], 0
jne 0x140001470
xor ecx, ecx
nop dword [rax]
movzx r8d, word [r12 + rcx]
mov word [r9 + rcx], r8w
add rcx, 2
test r8w, r8w
jne 0x140001480
lea r14, [rsp + 0x30]
mov rcx, r14
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
cmp ebx, 1
je 0x140001670
cmp ebx, 0x80
je 0x140001630
test ebx, ebx
je 0x140001658
xor r13d, r13d
test byte [0x140003020], 1
je 0x14000163b
mov rax, r12
shr rax, 0x10
je 0x1400016c5
mov rdx, 0xffffffffffffffff
mov rcx, r12
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, str._invalid_
test r8d, r8d
jne 0x140001503
mov rcx, r12
call sym.wine_dbgstr_wn.part.0.constprop.0
mov dword [rsp + 0x20], ebx
lea r9, str.got_driver_ctrl__lx_for__s_n
xor ecx, ecx
xor r13d, r13d
mov qword [rsp + 0x28], rax
lea r8, [0x1400040d0]
lea rdx, [0x140003020]
call sym.wine_dbg_log.constprop.0
jmp 0x14000163b
lea rax, str._null_
test r9, r9
je 0x14000157d
mov rax, r9
shr rax, 0x10
je 0x1400016b0
mov qword [rsp + 0x98], r9
mov rdx, 0xffffffffffffffff
mov rcx, r9
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, str._invalid_
test r8d, r8d
jne 0x14000157d
mov rcx, qword [rsp + 0x98]
call sym.wine_dbgstr_wn.part.0.constprop.0
mov qword [rsp + 0x20], rax
lea r9, str.shutting_down__s_n
lea r8, str.service_handler
mov ecx, 3
lea rdx, [0x140003020]
call sym.wine_dbg_log.constprop.0
jmp 0x140001378
lea rax, str._null_
test r9, r9
je 0x1400015fd
mov rax, r9
shr rax, 0x10
je 0x140001698
mov qword [rsp + 0x98], r9
mov rdx, 0xffffffffffffffff
mov rcx, r9
call qword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov r8d, eax
lea rax, str._invalid_
test r8d, r8d
jne 0x1400015fd
mov rcx, qword [rsp + 0x98]
call sym.wine_dbgstr_wn.part.0.constprop.0
mov qword [rsp + 0x28], rax
lea r9, str.got_service_ctrl__lx_for__s_n
lea r8, str.service_handler
xor ecx, ecx
mov dword [rsp + 0x20], ebx
lea rdx, [0x140003020]
call sym.wine_dbg_log.constprop.0
jmp 0x140001321
mov rcx, r12
xor r13d, r13d
call sym.wine_enumerate_root_devices
mov rcx, r14
call qword [sym.imp.ntoskrnl.exe_RtlFreeUnicodeString]
mov eax, r13d
add rsp, 0x58
pop rbx
pop r12
pop r13
pop r14
ret
mov rcx, r14
call sym.ZwLoadDriver
mov ecx, eax
call qword [sym.imp.ntoskrnl.exe_RtlNtStatusToDosError]
mov r13d, eax
jmp 0x14000163b
mov rcx, r14
call sym.ZwUnloadDriver
mov ecx, eax
call qword [sym.imp.ntoskrnl.exe_RtlNtStatusToDosError]
mov r13d, eax
jmp 0x14000163b
mov r8d, 0x6a
jmp 0x140001417
movzx edx, r9w
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
jmp 0x1400015fd
movzx edx, r9w
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
jmp 0x14000157d
movzx edx, r12w
lea rcx, str._04x
call sym.wine_dbg_sprintf.constprop.0
jmp 0x140001503
mov r13d, 0xc0000017
jmp 0x14000135f