Function at 0x1400070e0
Capabilities:
Print debug messages
Query or enumerate registry value
Set registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x3b0]
sub rsp, 0x4b0
mov rax, qword [0x14004e038]
xor rax, rsp
mov qword [rbp + 0x390], rax
mov eax, dword [rcx + 0x270]
xor edi, edi
movzx r14d, r9b
mov r13d, r8d
mov dword [rsp + 0x70], r8d
mov rsi, rdx
mov dword [rsp + 0x48], edi
mov rbx, rcx
mov r15d, r14d
test al, 4
je 0x140007162
mov r9, rdx
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r8d
lea rcx, [rbp - 0x70]
lea r8, str.Enter_Metering::SetFMFunction__s:_Function__d:__d_r_n
mov edx, 0x400
call fcn.140001140
lea rcx, [rbp - 0x70]
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x270]
mov ecx, r15d
bt eax, 9
jae 0x140007191
mov dword [rsp + 0x28], ecx
lea r8, str.Enter_Metering::SetFMFunction__s:_Function__d:__d
mov rcx, rbx
mov dword [rsp + 0x20], r13d
mov r9, rsi
mov edx, 4
call fcn.140006700
mov eax, dword [rbx + 0x270]
cmp dword [rbx + 0x230], 0xffffffff
jne 0x1400071d2
test al, 1
je 0x1400071b1
lea rcx, str.Metering::SetFMFunction__Wrong_Endpoint_Type_n
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x270]
bt eax, 9
jae 0x1400071cb
lea r8, str.Metering::SetFMFunction__Wrong_Endpoint_Type
mov edx, 4
mov rcx, rbx
call fcn.140006700
xor al, al
jmp 0x140007b6b
bt eax, 9
jae 0x1400071ec
lea r8, str.Enter_Metering::SetFMFunction_before_EnterCriticalSection_m_modeset_section_
mov edx, 4
mov rcx, rbx
call fcn.140006700
lea rax, [rbx + 0x1e0]
mov qword [rsp + 0x4a8], r12
mov rcx, rax
mov qword [rsp + 0x58], rax
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
mov rdx, rsi
mov rcx, rbx
call fcn.1400067f0
test al, al
jne 0x140007260
mov eax, dword [rbx + 0x270]
test al, 1
je 0x14000724a
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Not_Support_r_n
mov edx, 0x400
lea rcx, [rbp - 0x70]
call fcn.140001140
lea rcx, [rbp - 0x70]
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x270]
bt eax, 9
jae 0x1400078e2
lea r8, str.Metering::SetFMFunction__s:_Not_Support
jmp 0x1400078d2
mov r12, 0xffffffffffffffff
mov rdx, r12
nop word [rax + rax]
inc rdx
cmp word [rsi + rdx*2], di
jne 0x140007270
inc rdx
lea rcx, [rbx + 0x40]
mov r8, rsi
call fcn.140017e40
cmp r13d, 0x14
jne 0x1400072fc
movzx eax, r14b
mov word [0x140050d68], ax
mov r9d, dword [rbx + 0x230]
lea r8, [rsp + 0x44]
mov rdx, rsi
mov rcx, rbx
call fcn.140008620
test al, al
jne 0x140007333
mov eax, dword [rbx + 0x270]
test al, 1
je 0x1400072e6
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_get_K2_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x70]
call fcn.140001140
lea rcx, [rbp - 0x70]
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x270]
bt eax, 9
jae 0x1400078e2
lea r8, str.Metering::SetFMFunction__s:_Cannot_get_K2_value
jmp 0x1400078d2
cmp r13d, 0x13
jne 0x140007299
movzx eax, r14b
lea r9, str.13AE3061_F6DC_45C1_B90C_F5E992141790_15
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.140008bb0
test eax, eax
je 0x1400078e2
lea rcx, [rbx + 0x1e0]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
jmp 0x140007b61
mov r9d, dword [rbx + 0x230]
lea r8, [rsp + 0x40]
mov rdx, rsi
mov rcx, rbx
call fcn.140008940
test al, al
jne 0x140007396
mov eax, dword [rbx + 0x270]
test al, 1
je 0x140007380
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_get_K7_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x70]
call fcn.140001140
lea rcx, [rbp - 0x70]
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
mov eax, dword [rbx + 0x270]
bt eax, 9
jae 0x1400078e2
lea r8, str.Metering::SetFMFunction__s:_Cannot_get_K7_value
jmp 0x1400078d2
lea rdx, [rsp + 0x60]
mov dword [rsp + 0x60], edi
mov rcx, rbx
call fcn.140009410
cmp dword [rbx + 0x230], edi
jne 0x14000776e
lea r13, [rbx + 0x20c]
mov rdx, rsi
mov r8, r13
mov rcx, rbx
call fcn.140008800
test al, al
jne 0x140007412
lea rcx, str.Reset_Pre_K2_value_r_n
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
mov r8d, 3
mov dword [r13], 3
mov rdx, rsi
mov rcx, rbx
call fcn.1400086c0
test dword [rbx + 0x270], 0x200
je 0x140007432
lea r8, str.Metering::SetFMFunction_Reset_Pre_K2_value
mov edx, 4
mov rcx, rbx
call fcn.140006700
test dword [rbx + 0x270], 0x200
je 0x140007432
lea r8, str.Metering::SetFMFunction_switch__flag_...star
mov edx, 4
mov rcx, rbx
call fcn.140006700
movsxd rax, dword [rsp + 0x70]
cmp eax, 0xb
ja case.default.0x140007451
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x7b8c]
add rcx, rdx
jmp rcx
movzx eax, word [rbx + 0x148]
mov edi, dword [rsp + 0x44]
cmp edi, eax
je 0x14000747a
cmp edi, 0xb
je 0x14000747a
mov eax, edi
and edi, 0xfffffffe
or eax, 1
test r14b, r14b
cmovne edi, eax
jmp 0x140007738
test r14b, r14b
je 0x140007738
mov edi, 1
jmp 0x140007738
mov edi, dword [rsp + 0x44]
cmp edi, 0xc
je 0x1400074be
cmp edi, 0xd
je 0x1400074c3
movzx eax, word [rbx + 0x148]
cmp edi, eax
je 0x1400074be
cmp edi, 0xb
je 0x1400074be
mov eax, edi
and edi, 0xfffffffd
or eax, 2
test r14b, r14b
cmovne edi, eax
jmp 0x140007738
cmp edi, 0xd
jne 0x1400074d6
test r14b, r14b
je 0x140007738
mov edi, 3
jmp 0x140007738
test r15b, r15b
je 0x140007738
mov edi, 2
jmp 0x140007738
mov eax, dword [rsp + 0x40]
test r14b, r14b
je 0x1400074fe
and eax, 0xffffffef
mov dword [rsp + 0x40], eax
jmp case.default.0x140007451
or eax, 0x10
mov dword [rsp + 0x40], eax
jmp case.default.0x140007451
movzx eax, word [rbx + 0x148]
mov edi, dword [rsp + 0x44]
cmp edi, eax
je 0x140007536
cmp edi, 0xb
je 0x140007536
test r14b, r14b
je 0x14000752e
and edi, 0xfffffffd
or edi, 0xc
jmp 0x140007738
and edi, 0xfffffff3
jmp 0x140007738
test r14b, r14b
je 0x140007738
mov edi, 0xc
jmp 0x140007738
movzx edi, word [rbx + 0x148]
test r14b, r14b
je 0x14000756a
mov eax, dword [rsp + 0x44]
cmp eax, edi
je 0x140007738
mov dword [r13], eax
jmp 0x140007738
mov eax, dword [r13]
cmp eax, edi
je 0x140007579
mov edi, eax
jmp 0x140007738
mov dword [r13], 3
mov edi, 3
jmp 0x140007738
mov eax, dword [rsp + 0x40]
test r14b, r14b
je 0x1400075a1
bts eax, 8
mov dword [rsp + 0x40], eax
jmp case.default.0x140007451
btr eax, 8
mov dword [rsp + 0x40], eax
jmp case.default.0x140007451
test r14b, r14b
je case.default.0x140007451
mov edi, 0xb
jmp 0x140007738
mov eax, dword [rsp + 0x40]
test r14b, r14b
je 0x1400075d6
or eax, 4
mov dword [rsp + 0x40], eax
jmp case.default.0x140007451
and eax, 0xfffffffb
mov dword [rsp + 0x40], eax
jmp case.default.0x140007451
mov eax, dword [rsp + 0x40]
test r14b, r14b
je 0x1400075f7
or eax, 1
mov dword [rsp + 0x40], eax
jmp case.default.0x140007451
and eax, 0xfffffffe
mov dword [rsp + 0x40], eax
jmp case.default.0x140007451
movzx eax, r14b
mov rdx, rsi
add eax, eax
mov rcx, rbx
mov r8d, eax
mov dword [rsp + 0x48], eax
call fcn.140008760
jmp case.default.0x140007451
xor r9d, r9d
mov rdx, rsi
mov rcx, rbx
test r14b, r14b
je 0x14000769a
mov edi, dword [rsp + 0x44]
lea r8, [rsp + 0x68]
mov dword [rsp + 0x60], edi
lea r15d, [r9 + 1]
call fcn.140008450
test al, al
je 0x14000770d
mov r14, qword [rsp + 0x68]
lea rax, [rsp + 0x60]
mov rcx, r14
mov dword [rsp + 0x28], 4
lea r9d, [r15 + 3]
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, str.BE73ED5B_FC1C_4875_AC4F_833FFF79CDAA_302
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
mov rcx, r14
test eax, eax
jne 0x1400076ed
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov r8d, r15d
mov rdx, rsi
mov rcx, rbx
call fcn.140006050
jmp 0x140007738
lea r8, [rsp + 0x50]
mov dword [rsp + 0x60], 4
mov r15d, edi
call fcn.140008450
test al, al
je 0x140007709
mov r14, qword [rsp + 0x50]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rdx, str.BE73ED5B_FC1C_4875_AC4F_833FFF79CDAA_302
lea rax, [rsp + 0x68]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rcx, r14
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExW]
mov rcx, r14
test eax, eax
jne 0x140007703
mov edi, dword [rsp + 0x68]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov r8d, r15d
mov rdx, rsi
mov rcx, rbx
call fcn.140006050
jmp 0x140007738
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov edi, dword [rsp + 0x44]
mov r8d, r15d
mov rdx, rsi
mov rcx, rbx
call fcn.140006050
jmp 0x140007738
movzx eax, r14b
lea r9, str.13AE3061_F6DC_45C1_B90C_F5E992141790_11
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.140008bb0
mov edi, dword [rsp + 0x44]
test dword [rbx + 0x270], 0x200
je 0x140007758
lea r8, str.Metering::SetFMFunction_switch__flag_...end
mov edx, 4
mov rcx, rbx
call fcn.140006700
mov r8d, dword [r13]
mov rdx, rsi
mov rcx, rbx
call fcn.1400086c0
mov r13d, dword [rsp + 0x70]
jmp 0x1400077de
cmp r13d, 0x10
jne 0x140007785
test r14b, r14b
je 0x140007780
and dword [rsp + 0x40], 0xfffffffb
jmp 0x140007785
or dword [rsp + 0x40], 4
mov r8d, dword [rsp + 0x40]
mov rdx, rsi
mov rcx, rbx
call fcn.1400089e0
test al, al
jne 0x1400077da
test byte [rbx + 0x270], 1
je 0x1400078e2
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_Pre_K7_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x70]
call fcn.140001140
lea rcx, [rbp - 0x70]
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
xor al, al
jmp 0x140007b63
mov edi, dword [rsp + 0x44]
test dword [rbx + 0x270], 0x200
je 0x1400077fe
lea r8, str.Metering::SetFMFunction_SetK2Value...
mov edx, 4
mov rcx, rbx
call fcn.140006700
mov r9d, dword [rbx + 0x230]
mov r8d, edi
mov rdx, rsi
mov rcx, rbx
call fcn.140008590
mov ecx, dword [rbx + 0x270]
test al, al
jne 0x14000785d
test cl, 1
je 0x14000784a
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_K2_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x70]
call fcn.140001140
lea rcx, [rbp - 0x70]
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
mov ecx, dword [rbx + 0x270]
bt ecx, 9
jae 0x1400078e2
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_K2_value
jmp 0x1400078d2
bt ecx, 9
jae 0x140007877
lea r8, str.Metering::SetFMFunction_SetK7Value...
mov edx, 4
mov rcx, rbx
call fcn.140006700
mov r9d, dword [rbx + 0x230]
mov rdx, rsi
mov r8d, dword [rsp + 0x40]
mov rcx, rbx
call fcn.1400088b0
mov ecx, dword [rbx + 0x270]
test al, al
jne 0x1400078f4
test cl, 1
je 0x1400078c5
mov r9, rsi
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_K7_value_r_n
mov edx, 0x400
lea rcx, [rbp - 0x70]
call fcn.140001140
lea rcx, [rbp - 0x70]
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
mov ecx, dword [rbx + 0x270]
bt ecx, 9
jae 0x1400078e2
lea r8, str.Metering::SetFMFunction__s:_Cannot_set_K7_value
mov r9, rsi
mov edx, 4
mov rcx, rbx
call fcn.140006700
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
xor al, al
jmp 0x140007b63
bt ecx, 9
jae 0x14000790e
lea r8, str.Metering::SetFMFunction_WriteEndpointProperty...
mov edx, 4
mov rcx, rbx
call fcn.140006700
mov r14d, dword [rbx + 0x230]
xor eax, eax
xor ecx, ecx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
call qword [sym.imp.ole32.dll_CoInitialize]
xor ecx, ecx
call fcn.1400183e0
mov rcx, rax
call fcn.140018968
xor edx, edx
lea rax, [rsp + 0x60]
lea r9, [0x14004eba8]
mov qword [rsp + 0x20], rax
lea rcx, [0x14004eb98]
lea r8d, [rdx + 0x17]
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoCreateInstance]
test eax, eax
jne 0x140007a0e
mov rcx, qword [rsp + 0x60]
lea r9, [rsp + 0x68]
mov rax, qword [rcx]
test r14d, r14d
jne 0x140007985
mov edx, 1
mov r8d, edx
jmp 0x14000798b
xor edx, edx
lea r8d, [rdx + 1]
call qword [rax + 0x20]
test eax, eax
jne 0x1400079fe
mov rcx, qword [rsp + 0x68]
lea r8, [rsp + 0x70]
mov edx, 1
mov rax, qword [rcx]
call qword [rax + 0x20]
test eax, eax
jne 0x1400079ee
xor eax, eax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
call fcn.14001893c
mov ecx, 0x13
mov dword [rbp - 0x80], eax
mov word [rsp + 0x78], cx
lea r8, [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea rdx, str._y9_
mov rax, qword [rcx]
call qword [rax + 0x30]
lea rcx, [rsp + 0x78]
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_PropVariantClear]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400079fe
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140007a0e
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x140007a1e
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoUninitialize]
test dword [rbx + 0x270], 0x200
je 0x140007a44
lea r8, str.Metering::SetFMFunction_WriteEndpointProperty...
mov edx, 4
mov rcx, rbx
call fcn.140006700
mov ecx, 0x204
call fcn.14000c668
mov r14, rax
cmp word [rsi + r12*2 + 2], 0
lea r12, [r12 + 1]
jne 0x140007a51
lea rdx, [r12 + 1]
mov r8, rsi
mov rcx, r14
call fcn.140017e40
mov dword [r14 + 0x200], r13d
mov r9, qword [rbx + 0x38]
test r9, r9
je 0x140007ad6
test byte [rbx + 0x270], 0x10
je 0x140007aba
mov r9, rsi
mov dword [rsp + 0x20], r13d
lea r8, str.ModeChangeEvent_from_Metering::SetFMFunction__s_flag__d_r_n
mov edx, 0x400
lea rcx, [rbp - 0x70]
call fcn.140001140
lea rcx, [rbp - 0x70]
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
mov r9, qword [rbx + 0x38]
mov r13d, dword [r14 + 0x200]
mov dword [rsp + 0x28], r13d
lea rcx, [0x140041f70]
xor r8d, r8d
mov qword [rsp + 0x20], r14
xor edx, edx
call qword [sym.imp.RPCRT4.dll_NdrClientCall3]
test byte [rbx + 0x270], 0x20
je 0x140007b1f
mov eax, dword [rsp + 0x48]
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 - 0x70]
mov eax, dword [rsp + 0x40]
mov r9, rsi
mov dword [rsp + 0x30], eax
mov edx, 0x400
mov eax, dword [rbx + 0x230]
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], eax
call fcn.140001140
lea rcx, [rbp - 0x70]
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
lea rcx, [rbx + 0x1e0]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
test byte [rbx + 0x270], 4
je 0x140007b54
lea r8, str.Leave_Metering::SetFMFunction_r_n
mov edx, 0x400
lea rcx, [rbp - 0x70]
call fcn.140001140
lea rcx, [rbp - 0x70]
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
mov edx, 0x204
mov rcx, r14
call fcn.14000c634
mov al, 1
mov r12, qword [rsp + 0x4a8]
mov rcx, qword [rbp + 0x390]
xor rcx, rsp
call fcn.14000c610
add rsp, 0x4b0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret