Function at 0x428720
Capabilities:
Get common file path
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x453dab
mov eax, dword fs:[0]
push eax
sub esp, 0x440
mov eax, dword [0x4663d8]
xor eax, esp
mov dword [esp + 0x438], eax
push ebx
push esi
push edi
mov eax, dword [0x4663d8]
xor eax, esp
push eax
lea eax, [esp + 0x450]
mov dword fs:[0], eax
mov edi, ecx
xor ebx, ebx
lea esi, [edi + 0xac8]
mov dword [esp + 0x18], ebx
mov edx, 0x45b00c
mov dword [esp + 0x458], ebx
call fcn.00401e60
test eax, eax
mov eax, str.SoftwareIntelIIPS
jne 0x42878d
mov eax, str.SoftwareIntelGFX
push eax
lea eax, [esp + 0x240]
push 0x104
push eax
call fcn.0043a1a2
add esp, 0xc
lea ecx, [esp + 0x23c]
push ecx
push str.Product_key:__s
push 0x4676b8
xor eax, eax
call fcn.0042dae0
add esp, 0xc
lea edx, [esp + 0x23c]
push edx
push edi
call fcn.0042c9c0
push 0x45b420
push esi
call fcn.00412950
push str.HDMI
push esi
mov byte [edi + 0xaf4], al
mov byte [edi + 0xaf1], bl
call fcn.00412950
push str.IIPS
push esi
mov byte [edi + 0xaf2], al
call fcn.00412950
mov byte [edi + 0xaf0], al
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x428815
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x18]
push eax
push 0xf003f
push ebx
push str.SoftwareIntelGFX
push 0x80000002
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, ebx
jne 0x42887d
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x18]
push edx
push ebx
push ebx
push str.HDAUDIO
push eax
mov dword [esp + 0x2c], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp dword [esp + 0x14], 1
mov eax, dword [esp + 0x18]
sete cl
cmp eax, ebx
mov byte [edi + 0xaf3], cl
je 0x428879
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x18], ebx
call fcn.004021a0
test eax, eax
jne 0x42895c
mov ecx, edi
call fcn.00428b00
cmp byte [edi + 0xaf4], bl
mov dword [esp + 0x14], 0x7e2
mov eax, 0x468c64
je 0x4288b7
lea ebx, [esp + 0x14]
call fcn.0042f2e0
mov dword [eax], 0x48e
jmp 0x4288db
cmp byte [edi + 0xaf0], bl
lea ebx, [esp + 0x14]
je 0x4288d0
call fcn.0042f2e0
mov dword [eax], 0x485
jmp 0x4288db
call fcn.0042f2e0
mov dword [eax], 0x9f6
lea ebx, [esp + 0x14]
mov dword [esp + 0x20], 0x4342f0
mov dword [esp + 0x14], 0x8a
call fcn.00435f90
lea ebx, [esp + 0x20]
mov esi, 0x468c90
call fcn.00436000
push 0
call fcn.00432fd0
cmp eax, 0x3eb
jne 0x428943
push str.User_canceled_wizard
push 0x4676b8
mov eax, 2
call fcn.0042dae0
mov eax, dword [esp + 0x20]
add esp, 8
mov dword [0x4676dc], 0xa009
mov dword [edi + 0x10], 9
test eax, eax
jmp 0x428ad2
cmp eax, 0xffffffff
jne 0x42895a
mov eax, dword [esp + 0x18]
mov dword [edi + 0x10], 0xff
test eax, eax
jmp 0x428ad2
xor ebx, ebx
cmp byte [edi + 0xaf4], bl
je 0x4289bc
lea esi, [edi + 0xa88]
push 0x45ba84
lea eax, [esi + 0x40]
push eax
call fcn.00412950
test al, al
je 0x42899d
mov edx, str.noicc
call fcn.00401e60
test eax, eax
jne 0x42899d
push 0x4e20
push 0x42cea0
mov ebx, esi
call fcn.00413b70
xor ebx, ebx
cmp byte [edi + 0xaf4], bl
je 0x4289bc
push 0x2af8
push fcn.00429740
lea ebx, [edi + 0xa88]
call fcn.00413b70
xor ebx, ebx
call fcn.00434fb0
lea edx, [esp + 0x23c]
lea ecx, [edi + 0xa88]
call fcn.004143a0
call fcn.00434e60
mov edx, dword [0x468cf8]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x468cf8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x468cf8], ebx
cmp byte [edi + 0xaf4], bl
je 0x428a8d
push 0x104
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x2c], vtable.CSafeDeleteTree.0
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea edx, [esp + 0x34]
push edx
call dword [sym.imp.SHLWAPI.dll_PathStripToRootW]
push str.IntelExtremeGraphics
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push ebx
push 0x4588ec
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x30]
call fcn.00424d40
cmp eax, ebx
jne 0x428a75
mov eax, dword [esp + 0x24]
push ebx
lea edx, [esp + 0x38]
push edx
mov edx, dword [eax + 4]
lea ecx, [esp + 0x2c]
call edx
jmp 0x428a8d
push eax
push str.Error_0x_X
push 0x4676b8
mov eax, 2
call fcn.0042dae0
add esp, 0xc
mov byte [esp + 0x13], bl
call fcn.00425940
mov edx, 0x456980
call fcn.00401e60
test eax, eax
jne 0x428aba
call fcn.00432f90
push 1
call fcn.00432fd0
cmp eax, 0x467
sete byte [esp + 0x13]
mov ecx, edi
call fcn.0042d230
cmp byte [esp + 0x13], bl
je 0x428acc
call fcn.004321d0
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x428adb
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x450]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x438]
xor ecx, esp
call fcn.00437ffa
mov esp, ebp
pop ebp
ret