Function at 0x1400041c0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov r14, rcx
mov ecx, 4
call fcn.14000a970
mov ecx, 4
mov rbp, rax
call fcn.14000a970
xor edi, edi
mov rsi, rax
test rbp, rbp
je 0x1400046ec
test rax, rax
je 0x1400046fe
lea ecx, [rdi + 4]
call fcn.14000a970
mov rbx, rax
test rax, rax
je 0x1400046f1
mov qword [rsp + 0x30], rsi
lea r9d, [rdi + 0x10]
mov qword [rsp + 0x28], rax
lea r8, str.OPROMSkipUpdate
lea rdx, str.SYSTEMCurrentControlSetServicesIntelGFXFwUpdateTool
mov qword [rsp + 0x20], rbp
mov rcx, 0xffffffff80000002
mov dword [rsi], 4
call qword [sym.imp.ADVAPI32.dll_RegGetValueA]
test eax, eax
je 0x140004274
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Skip_Update_Key_fetch_failed_n
call fcn.1400018b0
mov r8d, edi
mov byte [r14 + 0x214], dil
jmp 0x140004292
cmp dword [rbx], edi
jne 0x140004284
mov byte [r14 + 0x214], dil
mov r8d, edi
jmp 0x140004292
mov byte [r14 + 0x214], 1
mov r8d, 1
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Skip_Update_Value:__d._n
call fcn.1400018b0
cmp byte [r14 + 0x214], 1
jne 0x1400042c7
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Skip_Update_is_set._Skipping_the_Oprom_Update_Flow____n
call fcn.1400018b0
jmp 0x1400046f1
mov rcx, rbx
call fcn.14000a950
mov ecx, 4
call fcn.14000a970
mov rbx, rax
test rax, rax
je 0x1400046f1
mov qword [rsp + 0x30], rsi
lea r8, str.OPROMAllowDowngrade
mov qword [rsp + 0x28], rax
lea rdx, str.SYSTEMCurrentControlSetServicesIntelGFXFwUpdateTool
mov r9d, 0x10
mov qword [rsp + 0x20], rbp
mov rcx, 0xffffffff80000002
mov dword [rsi], 4
call qword [sym.imp.ADVAPI32.dll_RegGetValueA]
test eax, eax
je 0x14000433e
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Allow_Downgrade_Key_fetch_failed_n
call fcn.1400018b0
mov r8d, edi
mov byte [r14 + 0x215], dil
jmp 0x14000435c
cmp dword [rbx], edi
jne 0x14000434e
mov byte [r14 + 0x215], dil
mov r8d, edi
jmp 0x14000435c
mov byte [r14 + 0x215], 1
mov r8d, 1
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Allow_Downgrade_Value:__d._n
call fcn.1400018b0
mov rcx, rbx
call fcn.14000a950
mov ecx, 4
call fcn.14000a970
mov rbx, rax
test rax, rax
je 0x1400046f1
mov qword [rsp + 0x30], rsi
lea r8, str.OPROMLastUpdateStatus
mov qword [rsp + 0x28], rax
lea rdx, str.SYSTEMCurrentControlSetServicesIntelGFXFwUpdateTool
mov r9d, 0x10
mov qword [rsp + 0x20], rbp
mov rcx, 0xffffffff80000002
mov dword [rsi], 4
call qword [sym.imp.ADVAPI32.dll_RegGetValueA]
test eax, eax
je 0x1400043ff
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Last_Update_Status_Fetch_failed_n
call fcn.1400018b0
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Error_to_get_Last_Updated_Status_Key_fetch_failed._Key_needs_to_be_available_for_updating_status____n
call fcn.1400018b0
mov rcx, rbx
call fcn.14000a950
mov edi, 1
jmp 0x1400046f1
mov r8d, dword [rbx]
lea rdx, str._IntelFWUpdateService_:_Last_Update_Status_Fetch_Passed__Value:__lu_n
mov dword [r14 + 0x258], r8d
mov rcx, qword [0x14002fc48]
call fcn.1400018b0
mov rcx, rbx
call fcn.14000a950
mov ecx, 0x20
call fcn.14000a970
mov r15, rax
test rax, rax
je 0x1400046f1
mov qword [rsp + 0x30], rsi
lea r8, str.OPROMLastUpdatedTimeStamp
mov qword [rsp + 0x28], rax
lea rdx, str.SYSTEMCurrentControlSetServicesIntelGFXFwUpdateTool
mov r9d, 2
mov qword [rsp + 0x20], rbp
mov rcx, 0xffffffff80000002
mov dword [rsi], 0x20
call qword [sym.imp.ADVAPI32.dll_RegGetValueA]
test eax, eax
je 0x1400044ac
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Last_Updated_Timestamp_Key_fetch_failed__n
call fcn.1400018b0
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Error_to_get_Last_Updated_Time_Stamp_key_needs_to_be_available_for_updating_the_TimeStamp____n
call fcn.1400018b0
mov rcx, r15
call fcn.14000a950
mov edi, 1
jmp 0x1400046f1
mov r8d, dword [rsi]
lea rcx, [r14 + 0x236]
mov rdx, r15
call fcn.140007b30
mov rcx, qword [0x14002fc48]
lea r8, [r14 + 0x236]
lea rdx, str._IntelFWUpdateService_:_Last_Update_Time_Stamp_Passed__Value_:__s_n
call fcn.1400018b0
mov rcx, r15
call fcn.14000a950
mov ecx, 0x20
call fcn.14000a970
mov rbx, rax
test rax, rax
je 0x1400046f1
mov qword [rsp + 0x30], rsi
lea r8, str.OPROMLastUpdatedVersion
mov qword [rsp + 0x28], rax
lea rdx, str.SYSTEMCurrentControlSetServicesIntelGFXFwUpdateTool
mov r9d, 2
mov qword [rsp + 0x20], rbp
mov rcx, 0xffffffff80000002
mov dword [rsi], 0x20
call qword [sym.imp.ADVAPI32.dll_RegGetValueA]
test eax, eax
je 0x140004545
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Error_in_to_get_Last_Updated_Version_Key_fetch_failed_n
call fcn.1400018b0
jmp 0x140004557
mov r8d, dword [rsi]
lea rcx, [r14 + 0x216]
mov rdx, rbx
call fcn.140007b30
mov rcx, rbx
call fcn.14000a950
mov rcx, qword [0x14002fc48]
lea r8, [r14 + 0x216]
lea rdx, str._IntelFWUpdateService_:_LastUpdateVersion_:__s_n
call fcn.1400018b0
mov ecx, 0x104
call fcn.14000a970
mov rbx, rax
test rax, rax
je 0x1400046f1
mov qword [rsp + 0x30], rsi
lea r8, str.OPROMAlternateBaseFolder
mov qword [rsp + 0x28], rax
lea rdx, str.SYSTEMCurrentControlSetServicesIntelGFXFwUpdateTool
mov r9d, 2
mov qword [rsp + 0x20], rbp
mov rcx, 0xffffffff80000002
mov dword [rsi], 0x104
call qword [sym.imp.ADVAPI32.dll_RegGetValueA]
mov ecx, dword [rsi]
test eax, eax
je 0x1400045e6
mov r8d, ecx
lea rdx, str._IntelFWUpdateService_:_OPROM_Alternate_Path_Key_fetch_failed__Data_Length:__lu_n
mov rcx, qword [0x14002fc48]
call fcn.1400018b0
mov byte [r14], dil
jmp 0x14000460a
mov r8, rcx
mov rdx, rbx
mov rcx, r14
call fcn.140007b30
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_OPROM_Alternate_Path_Key_fetch_Success___Path_:__s_n
mov r8, r14
call fcn.1400018b0
mov rcx, rbx
call fcn.14000a950
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Alternate_Path_for_OPROM:___s__n
mov r8, r14
call fcn.1400018b0
cmp byte [r14], dil
jne 0x1400046d4
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Alternate_Path_FW_Data:___s_._Reading_Base_Path_n
mov r8, r14
call fcn.1400018b0
mov ecx, 0x104
call fcn.14000a970
mov rbx, rax
test rax, rax
je 0x1400046f1
mov qword [rsp + 0x30], rsi
lea r8, str.ImagePath
mov qword [rsp + 0x28], rax
lea rdx, str.SYSTEMCurrentControlSetServicesigfxnd
mov r9d, 2
mov qword [rsp + 0x20], rbp
mov rcx, 0xffffffff80000002
mov dword [rsi], 0x104
call qword [sym.imp.ADVAPI32.dll_RegGetValueA]
test eax, eax
je 0x1400046b9
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Driver_Image_Path_fetch_failed_n
call fcn.1400018b0
mov rcx, rbx
call fcn.14000a950
mov edi, 1
jmp 0x1400046f1
mov edx, dword [rsi]
mov r9d, 2
mov r8, r14
mov rcx, rbx
call fcn.1400023f0
mov rcx, rbx
call fcn.14000a950
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Oprom_Path_Folder:__s_n
mov r8, r14
call fcn.1400018b0
jmp 0x1400046f1
test rsi, rsi
je 0x140004706
mov rcx, rsi
call fcn.14000a950
test rbp, rbp
je 0x140004706
mov rcx, rbp
call fcn.14000a950
mov rbx, qword [rsp + 0x60]
mov eax, edi
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret