Function at 0x1400120e0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x460
mov rax, qword [0x14006c038]
xor rax, rsp
mov qword [rsp + 0x450], rax
mov eax, dword [rcx + 0x384]
mov rdi, rdx
mov dword [rsp + 0x40], 0xffffffff
mov rbx, rcx
mov dword [rsp + 0x44], 4
bt eax, 0xf
jb 0x140012329
mov rcx, qword [rcx + 0x390]
test rcx, rcx
je 0x14001232d
lea rax, [rsp + 0x44]
xor r9d, r9d
mov qword [rsp + 0x28], rax
lea rdx, str.3BA0CD54_830F_4551_A6EB_F3EAB68E3700_17
lea rax, [rsp + 0x40]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400121a7
mov r9d, dword [rsp + 0x40]
mov eax, dword [rbx + 0x384]
test r9d, r9d
je 0x140012176
bts eax, 7
jmp 0x14001217e
movzx eax, al
and eax, 0x80
mov dword [rsp + 0x28], eax
lea r8, str.GetAPOFunction_use_RTK_Int_ext_key__d__APOF__X__retAPOF_X_r_n
mov dword [rdi], eax
mov edx, 8
mov eax, dword [rbx + 0x384]
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.14000e0f0
jmp 0x140012333
mov rcx, qword [rbx + 0x390]
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rdx, str.2b24be42_a892_11dc_8314_0800200c9a66_17
lea rax, [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140012220
mov r9d, dword [rsp + 0x40]
mov eax, dword [rbx + 0x384]
test r9d, r9d
je 0x1400121ef
bts eax, 7
jmp 0x1400121f7
movzx eax, al
and eax, 0x80
mov dword [rsp + 0x28], eax
lea r8, str.GetAPOFunction_use_FM_Int_ext_key__d__APOF__X__retAPOF_X_r_n
mov dword [rdi], eax
mov edx, 8
mov eax, dword [rbx + 0x384]
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.14000e0f0
jmp 0x1400122fe
xor edx, edx
mov qword [rsp + 0x480], rsi
mov r8d, 0x400
lea rcx, [rsp + 0x50]
call fcn.14001cd80
lea rdx, [rbx + 0x40]
xor r9d, r9d
lea r8, [rsp + 0x50]
mov rcx, rbx
call fcn.140012510
movzx esi, al
lea r8, str.GetAPOFunction__GetMMdeviceDeviceInstId_d___s_r_n
lea rax, [rsp + 0x50]
mov r9d, esi
mov edx, 8
mov qword [rsp + 0x20], rax
mov rcx, rbx
call fcn.14000e0f0
test esi, esi
je 0x140012294
lea rdx, [rsp + 0x50]
call fcn.1400142b0
mov ecx, dword [rbx + 0x384]
mov esi, eax
test eax, eax
je 0x14001229a
and ecx, 0x80
jmp 0x14001229e
mov ecx, dword [rbx + 0x384]
bts ecx, 7
mov dword [rsp + 0x30], ecx
lea r8, str.GetAPOFunction__Is_Intel_ISST_BT_USB_d___s___APOF__X__retAPOF_X_r_n
mov dword [rdi], ecx
mov r9d, esi
mov eax, dword [rbx + 0x384]
mov edx, 8
mov dword [rsp + 0x28], eax
mov rcx, rbx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
call fcn.14000e0f0
mov eax, dword [rbx + 0x384]
lea r9, [rsp + 0x50]
lea r8, str.GetAPOFunction_Device_InstIds__s__APOF__X__Is_Intel_ISST_BT_USB_d_r_n
mov dword [rsp + 0x28], esi
mov edx, 8
mov dword [rsp + 0x20], eax
mov rcx, rbx
call fcn.14000e0f0
mov rsi, qword [rsp + 0x480]
mov eax, dword [rdi]
lea r8, str.GetAPOFunction_use_FM_Int_ext_key__d__APOF__X__retAPOF_X_r_n
mov r9d, dword [rsp + 0x40]
mov edx, 8
mov dword [rsp + 0x28], eax
mov rcx, rbx
mov eax, dword [rbx + 0x384]
mov dword [rsp + 0x20], eax
call fcn.14000e0f0
jmp 0x140012333
btr eax, 0xf
bts eax, 7
mov dword [rdx], eax
mov edx, dword [rbx + 0x388]
lea r8, str.APO_Support_function_0x_x__key_value:_0x_x_r_n
mov eax, dword [0x14006ef24]
mov rcx, rbx
shl edx, 0x10
and eax, 0x800
or edx, eax
mov eax, dword [rsp + 0x40]
or dword [rdi], edx
mov edx, 0x40
mov r9d, dword [rdi]
mov dword [rsp + 0x20], eax
call fcn.14000e0f0
mov al, 1
mov rcx, qword [rsp + 0x450]
xor rcx, rsp
call fcn.140019840
mov rbx, qword [rsp + 0x488]
add rsp, 0x460
pop rdi
ret