Function at 0x140003c50
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 0x14000417c
test rax, rax
je 0x14000418e
lea ecx, [rdi + 4]
call fcn.14000a970
mov rbx, rax
test rax, rax
je 0x140004181
mov qword [rsp + 0x30], rsi
lea r9d, [rdi + 0x10]
mov qword [rsp + 0x28], rax
lea r8, str.FwDataSkipUpdate
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 0x140003d04
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Ifwidata_Skip_Update_Key_fetch_failed_n
call fcn.1400018b0
mov r8d, edi
mov byte [r14 + 0x214], dil
jmp 0x140003d22
cmp dword [rbx], edi
jne 0x140003d14
mov byte [r14 + 0x214], dil
mov r8d, edi
jmp 0x140003d22
mov byte [r14 + 0x214], 1
mov r8d, 1
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Ifwidata_Skip_Update_Value:__d._n
call fcn.1400018b0
cmp byte [r14 + 0x214], 1
jne 0x140003d57
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Ifwidata_Skip_Update_is_set._Skipping_the_Oprom_Update_Flow____n
call fcn.1400018b0
jmp 0x140004181
mov rcx, rbx
call fcn.14000a950
mov ecx, 4
call fcn.14000a970
mov rbx, rax
test rax, rax
je 0x140004181
mov qword [rsp + 0x30], rsi
lea r8, str.FwDataAllowDowngrade
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 0x140003dce
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Ifwidata_Allow_Downgrade_Key_fetch_failed_n
call fcn.1400018b0
mov r8d, edi
mov byte [r14 + 0x215], dil
jmp 0x140003dec
cmp dword [rbx], edi
jne 0x140003dde
mov byte [r14 + 0x215], dil
mov r8d, edi
jmp 0x140003dec
mov byte [r14 + 0x215], 1
mov r8d, 1
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Ifwidata_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 0x140004181
mov qword [rsp + 0x30], rsi
lea r8, str.FwDataLastUpdateStatus
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 0x140003e8f
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_Ifwidata_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 0x140004181
mov r8d, dword [rbx]
lea rdx, str._IntelFWUpdateService_:_Ifwidata_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 rbx, rax
test rax, rax
je 0x140004181
mov qword [rsp + 0x30], rsi
lea r8, str.FwDataLastUpdatedVersion
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 0x140003f19
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Error_in_to_get_Last_Ifwidata_Updated_Version_Key_fetch_failed_n
call fcn.1400018b0
jmp 0x140003f2b
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_:_Ifwidata_LastUpdateVersion_:__s_n
call fcn.1400018b0
mov ecx, 0x20
call fcn.14000a970
mov r15, rax
test rax, rax
je 0x140004181
mov qword [rsp + 0x30], rsi
lea r8, str.FwDataLastUpdatedTimeStamp
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 0x140003fd5
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 0x140004181
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_Ifwidata_Update_Time_Stamp_Passed__Value_:__s_n
call fcn.1400018b0
mov rcx, r15
call fcn.14000a950
mov ecx, 0x104
call fcn.14000a970
mov rbx, rax
test rax, rax
je 0x140004181
mov qword [rsp + 0x30], rsi
lea r8, str.FwDataAlternateBaseFolder
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 0x140004076
mov r8d, ecx
lea rdx, str._IntelFWUpdateService_:_c__Data_Length:__lu_n
mov rcx, qword [0x14002fc48]
call fcn.1400018b0
mov byte [r14], dil
jmp 0x14000409a
mov r8, rcx
mov rdx, rbx
mov rcx, r14
call fcn.140007b30
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_FW_Data_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_FW_Data:___s__n
mov r8, r14
call fcn.1400018b0
cmp byte [r14], dil
jne 0x140004164
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Alternate_Path:___s_._Reading_Base_Path_n
mov r8, r14
call fcn.1400018b0
mov ecx, 0x104
call fcn.14000a970
mov rbx, rax
test rax, rax
je 0x140004181
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 0x140004149
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 0x140004181
mov edx, dword [rsi]
mov r9d, 5
mov r8, r14
mov rcx, rbx
call fcn.1400023f0
mov rcx, rbx
call fcn.14000a950
mov rcx, qword [0x14002fc48]
lea rdx, str._IntelFWUpdateService_:_Ifwi_Data_Path_Folder:__s_n
mov r8, r14
call fcn.1400018b0
jmp 0x140004181
test rsi, rsi
je 0x140004196
mov rcx, rsi
call fcn.14000a950
test rbp, rbp
je 0x140004196
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