Function at 0x40c99a
Capabilities:
Check if file exists
Get common file path
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x126c
call fcn.00428050
mov eax, dword [0x46053c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, 0x208
lea eax, [ebp - 0x824]
push edi
xor esi, esi
push esi
push eax
call fcn.00428c30
push edi
lea eax, [ebp - 0xa2c]
push esi
push eax
call fcn.00428c30
push edi
lea eax, [ebp - 0xc34]
push esi
push eax
call fcn.00428c30
push edi
lea eax, [ebp - 0xe3c]
push esi
push eax
call fcn.00428c30
push edi
lea eax, [ebp - 0x1044]
push esi
push eax
call fcn.00428c30
push edi
lea eax, [ebp - 0x124c]
push esi
push eax
call fcn.00428c30
add esp, 0x48
lea eax, [ebp - 0x414]
push edi
push esi
push eax
call fcn.00428c30
push str.SOFTWAREAdobeAdobe_Acrobat_
mov ebx, 0x104
mov dword [ebp - 0x1258], edi
lea eax, [ebp - 0x414]
mov dword [ebp - 0x125c], edi
push ebx
push eax
mov dword [ebp - 0x1260], edi
mov dword [ebp - 0x1264], edi
mov dword [ebp - 0x1268], edi
mov dword [ebp - 0x126c], edi
call fcn.0042f41c
push 0x44c86c
lea eax, [ebp - 0x414]
push ebx
push eax
call fcn.0042f3a7
push str.Installer
lea eax, [ebp - 0x414]
push ebx
push eax
call fcn.0042f3a7
add esp, 0x30
lea eax, [ebp - 0x1250]
push eax
push 0x20019
push esi
lea eax, [ebp - 0x414]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40cad6
lea eax, [ebp - 0x1258]
push eax
lea eax, [ebp - 0x824]
push eax
push esi
push esi
push str.ProductCode
push dword [ebp - 0x1250]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x40cae7
push dword [ebp - 0x1250]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00427b1a
leave
ret
lea eax, [ebp - 0x125c]
push eax
lea eax, [ebp - 0xa2c]
push eax
push esi
push esi
push str.shIntermediateCab
push dword [ebp - 0x1250]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40caca
lea eax, [ebp - 0x1260]
push eax
lea eax, [ebp - 0xc34]
push eax
push esi
push esi
push str.shExtrasCab
push dword [ebp - 0x1250]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40caca
lea eax, [ebp - 0x1264]
push eax
lea eax, [ebp - 0xe3c]
push eax
push esi
push esi
push str.shOptionalCab
push dword [ebp - 0x1250]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40caca
lea eax, [ebp - 0x1268]
push eax
lea eax, [ebp - 0x1044]
push eax
push esi
push esi
push str.shLanguagesCab
push dword [ebp - 0x1250]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40caca
lea eax, [ebp - 0x126c]
push eax
lea eax, [ebp - 0x124c]
push eax
push esi
push esi
push str.shAlfSdPackCab
push dword [ebp - 0x1250]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x1250]
test eax, eax
jne 0x40cad0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edi
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.00428c30
push edi
lea eax, [ebp - 0x61c]
push esi
push eax
call fcn.00428c30
add esp, 0x18
lea eax, [ebp - 0x61c]
push esi
push 0x24
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x40cad6
lea eax, [ebp - 0x61c]
push eax
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.0042f41c
push str.InstallerSourceHash
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.0042f3a7
lea eax, [ebp - 0x824]
push eax
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.0042f3a7
add esp, 0x24
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40cad6
lea eax, [ebp - 0x1254]
push eax
push 2
lea eax, [ebp - 0x20c]
push eax
call sub.msi.dll_MsiOpenProductW
test eax, eax
jne 0x40cad6
push str.Intermediate.cab
mov edi, str.FileName
lea eax, [ebp - 0xa2c]
push edi
push eax
mov ebx, str.FileHashValue
push ebx
push str.SourceHash
push dword [ebp - 0x1254]
call fcn.0040c4fd
add esp, 0x18
test eax, eax
jne 0x40cd34
push str.Extras.cab
push edi
lea eax, [ebp - 0xc34]
push eax
push ebx
push str.SourceHash
push dword [ebp - 0x1254]
call fcn.0040c4fd
add esp, 0x18
test eax, eax
jne 0x40cd34
push str.Optional.cab
push edi
lea eax, [ebp - 0xe3c]
push eax
push ebx
push str.SourceHash
push dword [ebp - 0x1254]
call fcn.0040c4fd
add esp, 0x18
test eax, eax
jne 0x40cd34
push str.Languages.cab
push edi
lea eax, [ebp - 0x1044]
push eax
push ebx
push str.SourceHash
push dword [ebp - 0x1254]
call fcn.0040c4fd
add esp, 0x18
test eax, eax
jne 0x40cd34
push str.AlfSdPack.cab
push edi
lea eax, [ebp - 0x124c]
push eax
push ebx
push str.SourceHash
push dword [ebp - 0x1254]
call fcn.0040c4fd
add esp, 0x18
test eax, eax
jne 0x40cd34
push dword [ebp - 0x1254]
call sub.msi.dll_MsiDatabaseGenerateTransformW
xor esi, esi
inc esi
push dword [ebp - 0x1254]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov eax, esi
jmp 0x40cad8