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

Disassembly:
push rsi
push rdi
sub rsp, 0x68
xor esi, esi
mov dword [0x1401fe1f8], esi
call fcn.140005350
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edi, 1
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov edx, edi
mov dword [0x1401fe1dc], eax
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [0x1401fe1e8], rax
test rax, rax
je 0x1400049be
mov rcx, qword [0x1401fe190]
lea rdx, [0x1401fe198]
mov dword [0x1401fe19c], 4
mov qword [0x1401fe1a0], 0x81
mov qword [0x1401fe1ac], rsi
call qword [sym.imp.ADVAPI32.dll_SetServiceStatus]
test eax, eax
jne 0x140004744
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.SetServiceStatus___failed:__d
mov edx, eax
call fcn.1400052e0
add rsp, 0x68
pop rdi
pop rsi
ret
lea rcx, [0x1401fdf68]
mov qword [rsp + 0x60], rbx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, str.ServiceStart
call fcn.1400052e0
lea rcx, str.InstallTask
call fcn.1400052e0
lea rax, [rsp + 0x90]
lea rdx, str.SOFTWAREWidcommInstall
mov r9d, edi
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x80], esi
mov dword [rsp + 0x88], 4
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x1400047af
mov ebx, edi
jmp 0x14000481c
mov rcx, qword [rsp + 0x90]
lea rax, [rsp + 0x88]
lea rdx, str.DisableBTWDI
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x80]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x90]
mov ebx, esi
test eax, eax
sete bl
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x140004806
mov ebx, esi
call fcn.140003c90
jmp 0x140004821
mov ebx, dword [rsp + 0x80]
test ebx, ebx
jne 0x140004818
call fcn.140003c90
jmp 0x140004821
cmp ebx, edi
jne 0x140004821
call fcn.140002b90
lea rcx, str.InstallTask_done_IsBtwDiDisabled___d
mov edx, ebx
call fcn.1400052e0
lea rax, [rsp + 0x98]
lea rdx, str.SYSTEMCurrentControlSet_servicesBcmBtRSupport
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400048f3
mov rcx, qword [rsp + 0x98]
lea rax, [rsp + 0x88]
lea rdx, str.version
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x80]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x80], esi
mov dword [rsp + 0x88], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400048dd
call fcn.1400054f0
mov edx, dword [rsp + 0x80]
mov ecx, esi
cmp edx, 0x400
sete cl
test ecx, eax
jne 0x1400048cf
cmp edx, 0x401
jne 0x1400048dd
lea rcx, str.Do_not_use_legacy_on_off_method
call fcn.1400052e0
mov edi, esi
mov rcx, qword [rsp + 0x98]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x140004991
lea rcx, str.PipeThread_start
call fcn.1400052e0
lea r8, [0x140004a60]
xor r9d, r9d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], esi
call qword [sym.imp.KERNEL32.dll_CreateThread]
cmp dword [0x1401fe1f8], esi
mov rbx, rax
jne 0x140004975
nop word [rax + rax]
lea rcx, [rsp + 0x30]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x140004975
cmp eax, 0xffffffff
jne 0x140004962
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.GetMessage_error__d
mov edx, eax
call fcn.1400052e0
jmp 0x14000496d
lea rcx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [0x1401fe1f8], esi
je 0x140004930
test rbx, rbx
je 0x140004991
mov edx, 0x1388
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [0x1401fdf68]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
lea rcx, str.ServiceStart_done
call fcn.1400052e0
cmp qword [0x1401f2a10], rsi
mov rbx, qword [rsp + 0x60]
je 0x1400049be
call qword [sym.imp.WS2_32.dll_WSACleanup]
add rsp, 0x68
pop rdi
pop rsi
ret