Function at 0x14000ec20
Capabilities:
Print debug messages

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r15
lea rbp, [rsp - 0x3c8]
sub rsp, 0x4c8
mov rax, qword [0x14006c038]
xor rax, rsp
mov qword [rbp + 0x3a0], rax
mov eax, dword [rcx + 0x290]
mov edi, r8d
movzx r15d, r9b
mov rsi, rdx
mov dword [rsp + 0x48], r8d
mov r12d, r15d
mov dword [rsp + 0x4c], 0
mov rbx, rcx
test al, 4
je 0x14000eca2
mov r9, rdx
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r8d
lea rcx, [rbp - 0x60]
lea r8, str.Enter_Metering::SetFMFunction__s:_Function__d:__d_r_n
mov edx, 0x400
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x290]
mov ecx, r12d
bt eax, 9
jae 0x14000ecd0
mov dword [rsp + 0x28], ecx
lea r8, str.Enter_Metering::SetFMFunction__s:_Function__d:__d
mov rcx, rbx
mov dword [rsp + 0x20], edi
mov r9, rsi
mov edx, 4
call fcn.14000e320
mov eax, dword [rbx + 0x290]
cmp dword [rbx + 0x398], 0xffffffff
jne 0x14000ed11
test al, 1
je 0x14000ecf0
lea rcx, str.Metering::SetFMFunction__Wrong_Endpoint_Type_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x290]
bt eax, 9
jae 0x14000ed0a
lea r8, str.Metering::SetFMFunction__Wrong_Endpoint_Type
mov edx, 4
mov rcx, rbx
call fcn.14000e320
xor al, al
jmp 0x14000f72f
mov qword [rsp + 0x4b8], r14
bt eax, 9
jae 0x14000ed33
lea r8, str.Enter_Metering::SetFMFunction_before_EnterCriticalSection_m_modeset_section_
mov edx, 4
mov rcx, rbx
call fcn.14000e320
lea rcx, [rbx + 0x320]
mov qword [rsp + 0x4c0], r13
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rdx, rsi
mov rcx, rbx
call fcn.14000e410
test al, al
jne 0x14000ed9f
mov eax, dword [rbx + 0x290]
test al, 1
je 0x14000ed89
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Not_Support_r_n
mov edx, 0x400
lea rcx, [rbp - 0x60]
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x290]
bt eax, 9
jae 0x14000ef43
lea r8, str.Metering::SetFMFunction__s:_Not_Support
jmp 0x14000ef33
mov r13, 0xffffffffffffffff
mov rdx, r13
nop dword [rax]
inc rdx
cmp word [rsi + rdx*2], 0
jne 0x14000edb0
inc rdx
lea rcx, [rbx + 0x40]
mov r8, rsi
call fcn.140031158
cmp edi, 0x14
jne 0x14000ee40
movzx eax, r15b
mov word [0x14006ef28], ax
mov r9d, dword [rbx + 0x398]
lea r8, [rsp + 0x44]
mov rdx, rsi
mov rcx, rbx
call fcn.140010c40
test al, al
jne 0x14000ee7d
mov eax, dword [rbx + 0x290]
test al, 1
je 0x14000ee2a
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_get_K2_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x60]
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x290]
bt eax, 9
jae 0x14000ef43
lea r8, str.Metering::SetFMFunction__s:_Cannot_get_K2_value
jmp 0x14000ef33
cmp edi, 0x13
jne 0x14000edd9
movzx eax, r15b
lea r9, str.13AE3061_F6DC_45C1_B90C_F5E992141790_15
lea r8, str.SOFTWAREFortemediaHowlingDection
mov dword [rsp + 0x20], eax
mov rcx, rbx
call fcn.140011600
test eax, eax
je 0x14000ef43
lea rcx, [rbx + 0x320]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x14000f71d
mov r9d, dword [rbx + 0x398]
lea r8, [rsp + 0x58]
mov rdx, rsi
mov rcx, rbx
call fcn.1400111e0
test al, al
jne 0x14000eed9
mov eax, dword [rbx + 0x290]
test al, 1
je 0x14000eeca
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_get_K7_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x60]
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x290]
bt eax, 9
jae 0x14000ef43
lea r8, str.Metering::SetFMFunction__s:_Cannot_get_K7_value
jmp 0x14000ef33
mov r9d, dword [rbx + 0x398]
lea r8, [rsp + 0x40]
mov rdx, rsi
mov rcx, rbx
call fcn.140010300
test al, al
jne 0x14000ef57
mov eax, dword [rbx + 0x290]
test al, 1
je 0x14000ef26
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_get_K900_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x60]
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x290]
bt eax, 9
jae 0x14000ef43
lea r8, str.Metering::SetFMFunction__s:_Cannot_get_K900_value
mov r9, rsi
mov edx, 4
mov rcx, rbx
call fcn.14000e320
lea rcx, [rbx + 0x320]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor al, al
jmp 0x14000f71f
mov edi, dword [rsp + 0x58]
lea rdx, [rsp + 0x58]
mov r14d, dword [rsp + 0x44]
mov rcx, rbx
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x44], edi
mov dword [rsp + 0x58], 0
call fcn.1400120e0
cmp dword [rbx + 0x398], 0
jne 0x14000f2c2
lea r8, [rbx + 0x374]
mov rdx, rsi
mov rcx, rbx
call fcn.140011000
test al, al
jne 0x14000f025
lea rcx, str.Reset_Pre_K2_value_r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor r8d, r8d
mov dword [rbx + 0x374], 3
mov rdx, rsi
call fcn.14000bcd0
mov r8d, dword [rbx + 0x374]
mov rdx, rsi
test eax, eax
je 0x14000effd
movups xmm0, xmmword [0x14005b018]
mov dword [rsp + 0x28], r8d
lea r9, [rsp + 0x70]
xor r8d, r8d
mov dword [rsp + 0x20], 2
movaps xmmword [rsp + 0x70], xmm0
call fcn.140014c90
jmp 0x14000f005
mov rcx, rbx
call fcn.140010e40
test dword [rbx + 0x290], 0x200
je 0x14000f045
lea r8, str.Metering::SetFMFunction_Reset_Pre_K2_value
mov edx, 4
mov rcx, rbx
call fcn.14000e320
test dword [rbx + 0x290], 0x200
je 0x14000f045
lea r8, str.Metering::SetFMFunction_switch__flag_...star
mov edx, 4
mov rcx, rbx
call fcn.14000e320
movsxd rax, dword [rsp + 0x48]
cmp eax, 0x19
ja case.0x14000f060.10
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0xf750]
add rcx, rdx
jmp rcx
movzx eax, word [rbx + 0x248]
cmp r14d, eax
je 0x14000f0c1
cmp r14d, 0xb
je 0x14000f0c1
mov eax, r14d
or eax, 1
and r14d, 0xfffffffe
test r15b, r15b
cmovne r14d, eax
mov r12d, dword [rsp + 0x40]
test dword [rbx + 0x290], 0x200
je 0x14000f0aa
lea r8, str.Metering::SetFMFunction_switch__flag_...end
mov edx, 4
mov rcx, rbx
call fcn.14000e320
mov r8d, dword [rbx + 0x374]
mov rdx, rsi
mov rcx, rbx
call fcn.140010e40
jmp 0x14000f318
mov r12d, dword [rsp + 0x40]
test r15b, r15b
je 0x14000f08a
mov r14d, 1
jmp 0x14000f08a
cmp r14d, 0xc
je 0x14000f0fd
cmp r14d, 0xd
je 0x14000f103
movzx eax, word [rbx + 0x248]
cmp r14d, eax
je 0x14000f0fd
cmp r14d, 0xb
je 0x14000f0fd
mov eax, r14d
or eax, 2
and r14d, 0xfffffffd
jmp 0x14000f07e
cmp r14d, 0xd
jne 0x14000f11c
mov r12d, dword [rsp + 0x40]
test r15b, r15b
je 0x14000f08a
mov r14d, 3
jmp 0x14000f08a
test r12b, r12b
mov r12d, dword [rsp + 0x40]
je 0x14000f08a
mov r14d, 2
jmp 0x14000f08a
test r15b, r15b
je 0x14000f142
and edi, 0xffffffef
jmp case.0x14000f060.10
or edi, 0x10
jmp case.0x14000f060.10
movzx eax, word [rbx + 0x248]
cmp r14d, eax
je 0x14000f177
cmp r14d, 0xb
je 0x14000f177
test r15b, r15b
je 0x14000f16e
and r14d, 0xfffffffd
or r14d, 0xc
jmp case.0x14000f060.10
and r14d, 0xfffffff3
jmp case.0x14000f060.10
mov r12d, dword [rsp + 0x40]
test r15b, r15b
je 0x14000f08a
mov r14d, 0xc
jmp 0x14000f08a
movzx eax, word [rbx + 0x248]
test r15b, r15b
je 0x14000f1b0
cmp r14d, eax
je 0x14000f1a8
mov dword [rbx + 0x374], r14d
mov r14d, eax
jmp case.0x14000f060.10
mov r14d, dword [rbx + 0x374]
cmp r14d, eax
jne case.0x14000f060.10
mov dword [rbx + 0x374], 3
mov r14d, 3
jmp case.0x14000f060.10
test r15b, r15b
je 0x14000f1e3
bts edi, 8
jmp case.0x14000f060.10
btr edi, 8
jmp case.0x14000f060.10
mov r12d, dword [rsp + 0x40]
test r15b, r15b
je 0x14000f08a
mov r14d, 0xb
jmp 0x14000f08a
test r15b, r15b
je 0x14000f212
or edi, 4
jmp case.0x14000f060.10
and edi, 0xfffffffb
jmp case.0x14000f060.10
test r15b, r15b
je 0x14000f227
or edi, 1
jmp case.0x14000f060.10
and edi, 0xfffffffe
jmp case.0x14000f060.10
movzx eax, r15b
mov rdx, rsi
add eax, eax
mov rcx, rbx
mov r8d, eax
mov dword [rsp + 0x4c], eax
call fcn.140010f20
jmp case.0x14000f060.10
movzx eax, r15b
lea r9, str.13AE3061_F6DC_45C1_B90C_F5E992141790_11
lea r8, str.SOFTWAREFortemediaHowlingDection
mov dword [rsp + 0x20], eax
mov rcx, rbx
call fcn.140011600
jmp case.0x14000f060.10
test r15b, r15b
je case.0x14000f060.10
movzx eax, word [rbx + 0x268]
and edi, 0xffffffef
mov dword [rsp + 0x58], eax
mov r12d, eax
jmp 0x14000f08a
test r15b, r15b
je case.0x14000f060.10
mov r12d, 0x89
and edi, 0xffffffef
jmp 0x14000f08a
test r15b, r15b
je case.0x14000f060.10
mov eax, 0x89
or edi, 0x10
mov dword [rsp + 0x58], eax
mov r12d, eax
jmp 0x14000f08a
cmp dword [rsp + 0x48], 0x10
jne 0x14000f2d6
test r15b, r15b
je 0x14000f2d3
and edi, 0xfffffffb
jmp 0x14000f2d6
or edi, 4
mov r8d, edi
mov rdx, rsi
mov rcx, rbx
call fcn.1400113e0
test al, al
jne 0x14000f313
test byte [rbx + 0x290], 1
je 0x14000f313
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_Pre_K7_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x60]
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov r12d, dword [rsp + 0x40]
test dword [rbx + 0x290], 0x200
je 0x14000f338
lea r8, str.Metering::SetFMFunction_SetK2Value...
mov edx, 4
mov rcx, rbx
call fcn.14000e320
mov r9d, dword [rbx + 0x398]
mov r8d, r14d
mov rdx, rsi
mov rcx, rbx
call fcn.140010b60
test al, al
jne 0x14000f3a0
mov eax, dword [rbx + 0x290]
test al, 1
je 0x14000f383
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_K2_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x60]
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x290]
bt eax, 9
jae 0x14000f3a0
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_K2_value
mov edx, 4
mov rcx, rbx
call fcn.14000e320
test dword [rbx + 0x290], 0x200
je 0x14000f3c0
lea r8, str.Metering::SetFMFunction_SetK7Value...
mov edx, 4
mov rcx, rbx
call fcn.14000e320
mov r9d, dword [rbx + 0x398]
mov r8d, edi
mov rdx, rsi
mov rcx, rbx
call fcn.140011100
test al, al
jne 0x14000f428
mov eax, dword [rbx + 0x290]
test al, 1
je 0x14000f40b
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_K7_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x60]
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x290]
bt eax, 9
jae 0x14000f428
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_K7_value
mov edx, 4
mov rcx, rbx
call fcn.14000e320
mov r9d, dword [rbx + 0x398]
mov r8d, r12d
mov rdx, rsi
mov rcx, rbx
call fcn.140010220
test al, al
jne 0x14000f490
mov eax, dword [rbx + 0x290]
test al, 1
je 0x14000f473
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_K900_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x60]
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x290]
bt eax, 9
jae 0x14000f490
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_K900_value
mov edx, 4
mov rcx, rbx
call fcn.14000e320
test dword [rbx + 0x290], 0x200
je 0x14000f4b0
lea r8, str.Metering::SetFMFunction_WriteEndpointProperty...
mov edx, 4
mov rcx, rbx
call fcn.14000e320
mov r15d, dword [rbx + 0x398]
xor eax, eax
xor ecx, ecx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x70], rax
call qword [sym.imp.ole32.dll_CoInitialize]
xor ecx, ecx
call fcn.140031370
mov rcx, rax
call fcn.14003140c
xor edx, edx
lea rax, [rsp + 0x60]
lea r9, [0x14006ccd8]
mov qword [rsp + 0x20], rax
lea rcx, [0x14006ccc8]
lea r8d, [rdx + 0x17]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jne 0x14000f5ac
mov rcx, qword [rsp + 0x60]
lea r9, [rsp + 0x58]
mov rax, qword [rcx]
test r15d, r15d
jne 0x14000f527
mov edx, 1
mov r8d, edx
jmp 0x14000f52d
xor edx, edx
lea r8d, [rdx + 1]
call qword [rax + 0x20]
test eax, eax
jne 0x14000f59c
mov rcx, qword [rsp + 0x58]
lea r8, [rsp + 0x70]
mov edx, 1
mov rax, qword [rcx]
call qword [rax + 0x20]
test eax, eax
jne 0x14000f58c
xor eax, eax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], rax
call fcn.1400313e0
mov ecx, 0x13
mov dword [rbp - 0x78], eax
mov word [rbp - 0x80], cx
lea r8, [rbp - 0x80]
mov rcx, qword [rsp + 0x70]
lea rdx, str._y9_
mov rax, qword [rcx]
call qword [rax + 0x30]
lea rcx, [rbp - 0x80]
call qword [sym.imp.ole32.dll_PropVariantClear]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14000f59c
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14000f5ac
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14000f5bc
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
test dword [rbx + 0x290], 0x200
je 0x14000f5e2
lea r8, str.Metering::SetFMFunction_WriteEndpointProperty...
mov edx, 4
mov rcx, rbx
call fcn.14000e320
cmp dword [rsp + 0x50], r14d
jne 0x14000f5fa
cmp dword [rsp + 0x44], edi
jne 0x14000f5fa
cmp dword [rsp + 0x40], r12d
je 0x14000f6a2
mov ecx, 0x204
call fcn.14001986c
mov r15, rax
nop word [rax + rax]
cmp word [rsi + r13*2 + 2], 0
lea r13, [r13 + 1]
jne 0x14000f610
lea rdx, [r13 + 1]
mov r8, rsi
mov rcx, r15
call fcn.140031158
mov eax, dword [rsp + 0x48]
mov dword [r15 + 0x200], eax
mov r9, qword [rbx + 0x38]
test r9, r9
je 0x14000f695
test byte [rbx + 0x290], 0x10
je 0x14000f67a
mov r9, rsi
mov dword [rsp + 0x20], eax
lea r8, str.ModeChangeEvent_from_Metering::SetFMFunction__s_flag__d_r_n
mov edx, 0x400
lea rcx, [rbp - 0x60]
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [r15 + 0x200]
mov r9, qword [rbx + 0x38]
mov dword [rsp + 0x28], eax
lea rcx, [0x14005aab0]
xor r8d, r8d
mov qword [rsp + 0x20], r15
xor edx, edx
call qword [sym.imp.RPCRT4.dll_NdrClientCall3]
mov edx, 0x204
mov rcx, r15
call fcn.140019864
test byte [rbx + 0x290], 0x20
je 0x14000f6e8
mov eax, dword [rsp + 0x4c]
lea r8, str._s_Type:__d__Set_K2_0x_x__K7_0x_x__Orientation_0x_x_r_n
mov dword [rsp + 0x38], eax
lea rcx, [rbp - 0x60]
mov eax, dword [rbx + 0x398]
mov r9, rsi
mov dword [rsp + 0x30], edi
mov edx, 0x400
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], eax
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea rcx, [rbx + 0x320]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [rbx + 0x290], 4
je 0x14000f71d
lea r8, str.Leave_Metering::SetFMFunction_r_n
mov edx, 0x400
lea rcx, [rbp - 0x60]
call fcn.140002050
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov al, 1
mov r13, qword [rsp + 0x4c0]
mov r14, qword [rsp + 0x4b8]
mov rcx, qword [rbp + 0x3a0]
xor rcx, rsp
call fcn.140019840
add rsp, 0x4c8
pop r15
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret