Function at 0x14001df60
Capabilities:
Get common file path
Get file version info
Print debug messages
Query or enumerate registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0xb98]
sub rsp, 0xc98
mov rax, qword [0x14007d038]
xor rax, rsp
mov qword [rbp + 0xb70], rax
movsxd rdi, r8d
mov r15, rdx
mov rsi, rcx
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp + 0x770]
mov r14, r9
call fcn.140028230
xor edx, edx
lea rcx, [rsp + 0x70]
mov r8d, 0x400
call fcn.140028230
xor ebx, ebx
test byte [rsi + 0x298], 4
je 0x14001dfee
mov r9d, edi
lea r8, str.Enter_Metering::GetFMExtStatus__d_n
mov edx, 0x400
lea rcx, [rbp + 0x770]
call fcn.140002050
lea rcx, [rbp + 0x770]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp edi, 0xa
ja case.0x14001e008.5
lea rdx, [0x140000000]
mov ecx, dword [rdx + rdi*4 + 0x1e550]
add rcx, rdx
jmp rcx
mov eax, dword [0x140080430]
mov dword [r14], eax
mov eax, 1
jmp 0x14001e280
movzx eax, word [rsi + 0x254]
mov dword [r14], eax
mov eax, 1
jmp 0x14001e280
xor r9d, r9d
lea r8, [rsp + 0x70]
mov rdx, r15
mov rcx, rsi
call fcn.14001bf90
movzx eax, al
lea rdx, str.VEN_8086
lea rcx, [rsp + 0x70]
mov dword [rsp + 0x5c], eax
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
lea r9, [rsp + 0x70]
mov edx, 0x100
lea r8, str.GetFMExtStatus_IsEpIDIntMic___now_DeviceInstId__s_n
mov rcx, rsi
mov rdi, rax
call fcn.1400171b0
lea rcx, [rsp + 0x70]
test rdi, rdi
jne 0x14001e2cb
mov qword [rsp + 0xc90], r12
lea rdx, str.ACPVEN_1022
mov qword [rsp + 0xc88], r13
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
mov rdi, rax
test rax, rax
jne 0x14001e113
lea rdx, str.VEN_1022DEV_15E2
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
lea rdx, str.ACPDEVTYPE_0002
mov r12, rax
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
lea rdx, str._ACPDEVTYPE_0003
mov r13, rax
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test r12, r12
je 0x14001e113
test r13, r13
jne 0x14001e0f7
test rax, rax
je 0x14001e113
lea r9, [rsp + 0x70]
mov edx, 0x100
lea r8, str.GetFMExtStatus_IsEpIDIntMic___int_mic_via_ACP_DeviceInstId__s_n
mov rcx, rsi
mov rdi, r12
call fcn.1400171b0
mov eax, dword [rsp + 0x5c]
lea r9, [rsp + 0x70]
lea r8, str.GetFMExtStatus_GetMMdeviceDeviceInstId_DevInstID__s_ret_d_n
mov dword [rsp + 0x20], eax
mov edx, 0x100
mov dword [r14], ebx
mov rcx, rsi
call fcn.1400171b0
mov rcx, rsi
test rdi, rdi
je 0x14001e15c
lea r8, str.GetFMExtStatus::AMD_ACP__IsEpIDIntMic1_n
mov dword [r14], 1
mov edx, 0x100
call fcn.1400171b0
jmp 0x14001e2ad
xor r9d, r9d
mov dword [rsp + 0x50], 4
lea r8, [rsp + 0x48]
mov dword [rsp + 0x60], ebx
mov rdx, r15
mov dword [rsp + 0x5c], ebx
call fcn.14001af20
mov rdi, qword [rsp + 0x48]
test al, al
je 0x14001e29f
lea rax, [rsp + 0x50]
xor r9d, r9d
mov qword [rsp + 0x28], rax
lea rdx, str.3BA0CD54_830F_4551_A6EB_F3EAB68E3700_17
lea rax, [rsp + 0x60]
xor r8d, r8d
mov rcx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movsxd r13, eax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.2b24be42_a892_11dc_8314_0800200c9a66_17
lea rax, [rsp + 0x50]
mov rcx, rdi
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ecx, dword [rsp + 0x60]
movsxd r12, eax
test r13, r13
jne 0x14001e1f4
cmp ecx, 1
jne 0x14001e1f4
mov dword [r14], ecx
mov eax, ebx
mov dword [rsp + 0x28], ecx
test r13, r13
lea r8, str.RTKIntExtKey_DevInstID__s_ok_d__Value_d_n
mov r9, r15
mov edx, 0x100
sete al
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1400171b0
mov ecx, dword [rsp + 0x5c]
test r12, r12
jne 0x14001e22c
cmp ecx, 1
jne 0x14001e22c
mov dword [r14], ecx
mov eax, ebx
mov dword [rsp + 0x28], ecx
test r12, r12
lea r8, str.FM_senaryIntExtKey_DevInstID__s_ok_d__Value_d_n
mov r9, r15
mov edx, 0x100
sete al
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1400171b0
test r12, r12
je 0x14001e29f
test r13, r13
je 0x14001e29f
test rdi, rdi
je 0x14001e26b
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [r14], ebx
xor eax, eax
mov r12, qword [rsp + 0xc90]
mov r13, qword [rsp + 0xc88]
mov rcx, qword [rbp + 0xb70]
xor rcx, rsp
call fcn.140024cf0
add rsp, 0xc98
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
test rdi, rdi
je 0x14001e2ad
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r9d, dword [r14]
lea r8, str.GetFMExtStatus_pRetFMExt_ret_d_n
mov edx, 0x100
mov rcx, rsi
call fcn.1400171b0
mov eax, 1
jmp 0x14001e270
lea rdx, str.LINKTYPE_02DEVTYPE_00VEN_8086DEV_AE20
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
lea rdx, str.LINKTYPE_02DEVTYPE_01VEN_8086DEV_AE20
mov rdi, rax
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rdi, rdi
jne 0x14001e33a
test rax, rax
jne 0x14001e33a
lea rdx, [rsp + 0x70]
call fcn.14001e580
mov edx, 0x100
mov rcx, rsi
test eax, eax
je 0x14001e324
lea r8, str.GetFMExtStatus::Intel__Is_Intel_ISST_BT_USBTRUE__IsEpIDIntMic0_n
call fcn.1400171b0
lea eax, [rdi + 1]
mov dword [r14], ebx
jmp 0x14001e280
lea r8, str.GetFMExtStatus::Intel__Is_Intel_ISST_BT_USBFALSE__not_support_type__IsEpIDIntMic0__ret0_n
call fcn.1400171b0
mov dword [r14], ebx
xor eax, eax
jmp 0x14001e280
lea r8, str.GetFMExtStatus::Intel_Dmic_to_PCH__IsEpIDIntMic1_n
mov edx, 0x100
mov rcx, rsi
call fcn.1400171b0
mov eax, 1
mov dword [r14], 1
jmp 0x14001e280
mov eax, dword [0x140080434]
mov dword [r14], eax
mov eax, 1
jmp 0x14001e280
mov eax, dword [rsi + 0x274]
mov dword [r14], eax
mov eax, 1
jmp 0x14001e280
xor edx, edx
mov dword [rsp + 0x5c], ebx
mov r8d, 0x400
mov dword [rsp + 0x60], ebx
lea rcx, [rbp + 0x370]
mov qword [rsp + 0x50], rbx
call fcn.140028230
lea rdx, [rbp + 0x370]
mov ecx, 0x200
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea r9, [rbp + 0x370]
mov edx, 0x400
lea r8, str._sFMService64.exe
lea rcx, [rbp + 0x370]
call fcn.140002050
lea rdx, [rsp + 0x5c]
lea rcx, [rbp + 0x370]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov esi, eax
test eax, eax
je 0x14001e451
mov ecx, esi
call fcn.1400252d4
mov edx, dword [rsp + 0x5c]
lea rcx, [rbp + 0x370]
mov r9, rax
mov r8d, esi
mov rdi, rax
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x14001e449
lea r9, [rsp + 0x60]
mov rcx, rdi
lea r8, [rsp + 0x50]
lea rdx, [0x14006a5f0]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x14001e449
cmp dword [rsp + 0x60], ebx
je 0x14001e449
mov rax, qword [rsp + 0x50]
cmp dword [rax], 0xfeef04bd
jne 0x14001e449
movzx ebx, word [rax + 0xc]
mov rcx, rdi
call fcn.140024d14
test r14, r14
je 0x14001e544
mov dword [r14], ebx
mov eax, 1
jmp 0x14001e280
movdqa xmm0, xmmword [0x140071300]
movdqu xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x40], 0x1f
mov dword [rsp + 0x44], 0x20
mov byte [rsp + 0x58], bl
nop dword [rax]
mov edi, dword [rsp + rbx*4 + 0x30]
lea r9, [rsp + 0x58]
mov r8d, edi
mov rdx, r15
mov rcx, rsi
call fcn.140018e00
test al, al
je 0x14001e4b2
cmp byte [rsp + 0x58], 0
jne 0x14001e4c2
inc rbx
cmp rbx, 6
jb 0x14001e490
xor eax, eax
jmp 0x14001e280
mov dword [r14], edi
mov eax, 1
jmp 0x14001e280
movdqa xmm0, xmmword [str._ABC]
movdqu xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x40], 0x44
mov dword [rsp + 0x44], 0x45
mov byte [rsp + 0x58], bl
mov edi, dword [rsp + rbx*4 + 0x30]
lea r9, [rsp + 0x58]
mov r8d, edi
mov rdx, r15
mov rcx, rsi
call fcn.140018e00
test al, al
je 0x14001e513
cmp byte [rsp + 0x58], 0
jne 0x14001e4c2
inc rbx
cmp rbx, 6
jb 0x14001e4f1
xor eax, eax
jmp 0x14001e280
mov rdx, r15
mov rcx, rsi
call fcn.14001e660
cmp eax, 0xffffffff
je case.0x14001e008.5
test r14, r14
je 0x14001e544
test eax, eax
sete bl
mov dword [r14], ebx
mov eax, 1
jmp 0x14001e280