Function at 0x140007850
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
jmp 0x140007850
mov rax, rsp
push rbx
push rdi
sub rsp, 0x68
xor edi, edi
lea rcx, str._nupdateSystemConfigurationToReg_called_n
mov qword [rax - 0x20], rdi
mov dword [rax + 0x10], edi
mov dword [rax + 0x18], edi
mov dword [rax + 0x20], edi
mov ebx, edi
call fcn.14000107d
lea r11, [rsp + 0x58]
lea rdx, str.SOFTWAREValidityWBF
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], r11
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x1400078ab
mov rcx, qword [rsp + 0x58]
test rcx, rcx
jne 0x1400078bc
lea rcx, str.Error_opening_VALIDITY_KEY_WBF_n
call fcn.14000107d
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x80]
lea rdx, str.isLenovoSystem
xor r9d, r9d
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x98]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x80], 4
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x140007909
lea rcx, str.System_configuration_already_set_n
call fcn.14000107d
mov ebx, 1
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x140007ae0
lea rcx, str.looking_for_system_details_n
call fcn.14000107d
lea rcx, str.LenovoSysCheck.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov rbx, rax
jne 0x140007949
lea rcx, str.Failed_to_load_LenovoSysCheck.dll_n
jmp 0x140007adb
mov rcx, rax
call fcn.140007750
test eax, eax
jne 0x14000796f
lea rcx, str.Failed_to_verify_signature_of_the_LenovoSysCheck.dll_n
call fcn.14000107d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x140007ae0
lea rdx, str.checkLenovoWMIEXT
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
mov qword [0x140013890], rax
jne 0x1400079a4
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Failed_to_GetProcAddress_of_CheckLenovoWMIEXT_reason__0x_x
mov edx, eax
call fcn.14000107d
jmp 0x140007ae0
lea rdx, str.isPBASupportedByLenovo
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
mov qword [0x140013800], rax
jne 0x1400079d9
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Failed_to_GetProcAddress_of_isPBASupportedByLenovo_reason__0x_x
mov edx, eax
call fcn.14000107d
jmp 0x140007ae0
call qword [0x140013890]
cmp eax, 1
jne 0x140007ad4
mov dword [rsp + 0x88], eax
lea rax, [rsp + 0x50]
lea rdx, str.SOFTWAREValidityWBF
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x58]
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rdi
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], edi
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x140007ae0
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x88]
lea rdx, str.isLenovoSystem
mov r9d, 4
xor r8d, r8d
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x80], 4
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x140007ae0
call qword [0x140013800]
test eax, eax
je 0x140007acb
lea rcx, str.Lenovo_and_PBA_supported
call fcn.14000107d
mov eax, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x90]
lea rdx, str.isPrebootSupported
mov r9d, 4
xor r8d, r8d
mov dword [rsp + 0x90], 1
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
jmp 0x140007ae0
lea rcx, str.Lenovo_and_PBA_Not_supported
jmp 0x140007adb
lea rcx, str.Not_a_lenovo_System
call fcn.14000107d
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140007af0
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, str.__updateSystemConfigurationToReg
call fcn.14000107d
add rsp, 0x68
pop rdi
pop rbx
ret