Function at 0x409b20
Capabilities:
Create directory
Delete directory
Delete file
Delete registry key
Delete registry value
Get common file path
Get installed programs
Get number of processors
Get process heap flags
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x46c
call fcn.004665f0
test eax, eax
jne 0x40d535
call fcn.004012d0
mov dword [ebp - 0x44c], eax
test eax, eax
je 0x40d52d
lea eax, [ebp - 0x428]
call fcn.00401400
lea eax, [ebp - 0x324]
mov dword [esp], 0x104
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetTempPathA]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], 0x52e11c
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
sub esp, 8
mov dword [esp + 8], 0x1f4
mov dword [esp + 4], 0x52ed8c
mov dword [esp], 0x52ed8c
call fcn.00466b70
mov dword [esp + 0x18], 0x52e1e8
mov dword [esp + 0x14], 0x52e20f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x64
mov dword [esp + 8], 9
mov dword [esp + 4], 0x532dc0
mov dword [esp], 0x52e06e
call fcn.00467500
mov dword [esp + 4], 0
mov dword [esp], 5
call sub.msi.dll_MsiSetInternalUI
sub esp, 8
mov dword [esp + 4], str.REGISTER_PRODUCT1
mov dword [esp], 0x52e06e
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov ebx, eax
cmp eax, 0x659
je 0x40d560
mov dword [esp + 4], 0xa8a
mov edi, 0x52e054
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xa8b
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp + 4], 1
mov dword [esp], 0x52ed8c
call fcn.00467020
mov dword [esp + 4], 0x52e2b4
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xa8c
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp + 4], 0
mov dword [esp], 0x52e11c
call fcn.00467020
mov dword [esp + 4], 0x52e4ac
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x43c]
mov dword [esp + 4], str.SoftwareMicrosoftInstallerUpgradeCodes51AAE0C44620A5E4788506E91F249BD2
mov dword [esp + 8], eax
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xa8f
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x43c]
mov dword [esp + 0xc], 0x20219
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x531240
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xa92
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52f123
mov dword [esp + 8], 0xa94
mov dword [esp + 4], 0
mov edx, 0x52f12b
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f12b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52f137
mov edx, 0x52f13d
sub esp, 8
mov dword [esp + 8], 0xa95
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f13d
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
lea ecx, [ebp - 0x428]
mov edx, 0x52f14c
sub esp, 8
mov dword [esp + 8], 0xa96
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f14c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
lea ecx, [ebp - 0x324]
mov edx, 0x52f158
sub esp, 8
mov dword [esp + 8], 0xa97
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f158
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.ModifyPath
sub esp, 8
mov dword [esp + 8], 0xa98
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.ModifyPath
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, str.Wine
mov edx, 0x52f1ad
sub esp, 8
mov dword [esp + 8], 0xa99
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f1ad
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.UninstallString
sub esp, 8
mov dword [esp + 8], 0xa9a
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.UninstallString
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.AuthorizedCDFPrefix
sub esp, 8
mov dword [esp + 8], 0xa9b
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.AuthorizedCDFPrefix
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Comments
sub esp, 8
mov dword [esp + 8], 0xa9c
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Comments
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Contact
sub esp, 8
mov dword [esp + 8], 0xa9d
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Contact
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f1ec
sub esp, 8
mov dword [esp + 8], 0xa9e
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f1ec
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f1f5
sub esp, 8
mov dword [esp + 8], 0xa9f
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f1f5
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f203
sub esp, 8
mov dword [esp + 8], 0xaa0
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f203
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, str.NoModify
sub esp, 8
mov dword [esp + 4], 0xaa1
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.NoModify
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Readme
sub esp, 8
mov dword [esp + 8], 0xaa2
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Readme
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Size
sub esp, 8
mov dword [esp + 8], 0xaa3
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Size
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f228
sub esp, 8
mov dword [esp + 8], 0xaa4
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f228
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f235
sub esp, 8
mov dword [esp + 8], 0xaa5
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f235
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x409
mov edx, 0x52f243
sub esp, 8
mov dword [esp + 4], 0xaa6
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f243
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x1010001
mov edx, 0x52f24c
sub esp, 8
mov dword [esp + 4], 0xaa7
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f24c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, 0x52f254
sub esp, 8
mov dword [esp + 4], 0xaa8
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f254
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, 0x52f261
sub esp, 8
mov dword [esp + 4], 0xaa9
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f261
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, 0x52f26e
sub esp, 8
mov dword [esp + 4], 0xaaa
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f26e
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
call fcn.004025d0
mov dword [esp + 4], 0xaab
mov edx, str.EstimatedSize
mov dword [esp], 1
mov ecx, eax
mov eax, dword [ebp - 0x43c]
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.EstimatedSize
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xaae
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x44c]
sub esp, 4
mov dword [esp + 8], eax
lea eax, [ebp - 0x220]
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerUserData_sProducts84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp], eax
call fcn.004013d0
lea eax, [ebp - 0x43c]
mov dword [esp + 0xc], 0xf013f
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x220]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xab3
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x438]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x43c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f28d
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xab6
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x430]
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x42c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f29f
mov dword [esp], eax
mov dword [ebp - 0x430], 0x104
call sub.advapi32.dll_RegQueryValueExA
lea eax, [ebp - 0x11c]
sub esp, 0x18
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_DeleteFileA]
mov dword [ebp - 0x450], eax
call eax
mov eax, dword [ebp - 0x438]
sub esp, 4
mov dword [esp + 4], 0x52f29f
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52f123
mov edx, 0x52f12b
sub esp, 8
mov dword [esp + 8], 0xabd
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f12b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52f137
mov edx, 0x52f13d
sub esp, 8
mov dword [esp + 8], 0xabe
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f13d
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
lea ecx, [ebp - 0x428]
mov edx, 0x52f14c
sub esp, 8
mov dword [esp + 8], 0xabf
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f14c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
lea ecx, [ebp - 0x324]
mov edx, 0x52f158
sub esp, 8
mov dword [esp + 8], 0xac0
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f158
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.ModifyPath
sub esp, 8
mov dword [esp + 8], 0xac1
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.ModifyPath
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, str.Wine
mov edx, 0x52f1ad
sub esp, 8
mov dword [esp + 8], 0xac2
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f1ad
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.UninstallString
sub esp, 8
mov dword [esp + 8], 0xac3
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.UninstallString
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.AuthorizedCDFPrefix
sub esp, 8
mov dword [esp + 8], 0xac4
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.AuthorizedCDFPrefix
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Comments
sub esp, 8
mov dword [esp + 8], 0xac5
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Comments
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Contact
sub esp, 8
mov dword [esp + 8], 0xac6
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Contact
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f1ec
sub esp, 8
mov dword [esp + 8], 0xac7
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f1ec
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f1f5
sub esp, 8
mov dword [esp + 8], 0xac8
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f1f5
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f203
sub esp, 8
mov dword [esp + 8], 0xac9
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f203
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, str.NoModify
sub esp, 8
mov dword [esp + 4], 0xaca
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.NoModify
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Readme
sub esp, 8
mov dword [esp + 8], 0xacb
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Readme
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Size
sub esp, 8
mov dword [esp + 8], 0xacc
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Size
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f228
sub esp, 8
mov dword [esp + 8], 0xacd
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f228
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f235
sub esp, 8
mov dword [esp + 8], 0xace
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f235
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x409
mov edx, 0x52f243
sub esp, 8
mov dword [esp + 4], 0xacf
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f243
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x1010001
mov edx, 0x52f24c
sub esp, 8
mov dword [esp + 4], 0xad0
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f24c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, 0x52f254
sub esp, 8
mov dword [esp + 4], 0xad1
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f254
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, 0x52f261
sub esp, 8
mov dword [esp + 4], 0xad2
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f261
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, 0x52f26e
sub esp, 8
mov dword [esp + 4], 0xad3
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f26e
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
call fcn.004025d0
mov dword [esp + 4], 0xad4
mov edx, str.EstimatedSize
mov dword [esp], 1
mov ecx, eax
mov eax, dword [ebp - 0x438]
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.EstimatedSize
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xad7
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x438]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x434]
sub esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x43c]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 8], 0
mov dword [esp + 4], str.Usage
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyExA
mov esi, dword [str.windows]
mov ecx, 5
sub esp, 0x14
mov ebx, eax
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b250
jmp 0x40aca6
mov dword [esp + 4], 0xadd
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
call fcn.0052b2a0
call fcn.0052b280
test eax, eax
jne 0x40ac72
mov eax, dword [ebp - 0x434]
mov dword [esp + 4], 0x52ee3b
mov edi, 0x52e054
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
mov esi, dword [str.windows]
mov ecx, 5
sub esp, 8
mov ebx, eax
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b250
jmp 0x40ad27
mov dword [esp + 4], 0xae2
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
call fcn.0052b2a0
call fcn.0052b280
test eax, eax
jne 0x40acf3
mov eax, dword [ebp - 0x434]
mov edi, 0x52e054
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x43c]
sub esp, 4
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xae5
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x43c]
sub esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x20119
mov dword [esp + 8], 0
mov dword [esp + 4], 0x531140
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xae9
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov dword [esp + 8], 0xaeb
mov dword [esp + 4], 0
mov edx, 0x52edd8
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52edd8
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xaee
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
mov dword [esp + 4], str.REGISTER_PRODUCT1_ALLUSERS1
mov dword [esp], 0x52e06e
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xaf3
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xaf4
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp + 4], 1
mov dword [esp], 0x52ed8c
call fcn.00467020
mov dword [esp + 4], 0x52e2b4
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xaf5
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp + 4], 0
mov dword [esp], 0x52e11c
call fcn.00467020
mov dword [esp + 4], 0x52e4ac
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x43c]
mov dword [esp + 0xc], 0x20119
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareMicrosoftInstallerUpgradeCodes51AAE0C44620A5E4788506E91F249BD2
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xaf8
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x43c]
mov dword [esp + 0xc], 0x20219
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x531240
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xafb
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52f123
mov dword [esp + 8], 0xafd
mov dword [esp + 4], 0
mov edx, 0x52f12b
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f12b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52f137
mov edx, 0x52f13d
sub esp, 8
mov dword [esp + 8], 0xafe
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f13d
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
lea ecx, [ebp - 0x428]
mov edx, 0x52f14c
sub esp, 8
mov dword [esp + 8], 0xaff
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f14c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
lea ecx, [ebp - 0x324]
mov edx, 0x52f158
sub esp, 8
mov dword [esp + 8], 0xb00
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f158
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.ModifyPath
sub esp, 8
mov dword [esp + 8], 0xb01
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.ModifyPath
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, str.Wine
mov edx, 0x52f1ad
sub esp, 8
mov dword [esp + 8], 0xb02
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f1ad
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.UninstallString
sub esp, 8
mov dword [esp + 8], 0xb03
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.UninstallString
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.AuthorizedCDFPrefix
sub esp, 8
mov dword [esp + 8], 0xb04
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.AuthorizedCDFPrefix
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Comments
sub esp, 8
mov dword [esp + 8], 0xb05
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Comments
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Contact
sub esp, 8
mov dword [esp + 8], 0xb06
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Contact
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f1ec
sub esp, 8
mov dword [esp + 8], 0xb07
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f1ec
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f1f5
sub esp, 8
mov dword [esp + 8], 0xb08
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f1f5
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f203
sub esp, 8
mov dword [esp + 8], 0xb09
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f203
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, str.NoModify
sub esp, 8
mov dword [esp + 4], 0xb0a
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.NoModify
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Readme
sub esp, 8
mov dword [esp + 8], 0xb0b
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Readme
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Size
sub esp, 8
mov dword [esp + 8], 0xb0c
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Size
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f228
sub esp, 8
mov dword [esp + 8], 0xb0d
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f228
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f235
sub esp, 8
mov dword [esp + 8], 0xb0e
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f235
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x409
mov edx, 0x52f243
sub esp, 8
mov dword [esp + 4], 0xb0f
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f243
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x1010001
mov edx, 0x52f24c
sub esp, 8
mov dword [esp + 4], 0xb10
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f24c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, 0x52f254
sub esp, 8
mov dword [esp + 4], 0xb11
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f254
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, 0x52f261
sub esp, 8
mov dword [esp + 4], 0xb12
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f261
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, 0x52f26e
sub esp, 8
mov dword [esp + 4], 0xb13
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f26e
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
call fcn.004025d0
mov dword [esp + 4], 0xb14
mov edx, str.EstimatedSize
mov dword [esp], 1
mov ecx, eax
mov eax, dword [ebp - 0x43c]
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.EstimatedSize
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xb17
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x220]
sub esp, 4
mov dword [esp + 8], 0x52eec0
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerUserData_sProducts84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp], eax
call fcn.004013d0
lea eax, [ebp - 0x43c]
mov dword [esp + 0xc], 0x20119
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x220]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xb1c
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x438]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x43c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f28d
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xb1f
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x430]
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x42c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f29f
mov dword [esp], eax
mov dword [ebp - 0x430], 0x104
call sub.advapi32.dll_RegQueryValueExA
lea eax, [ebp - 0x11c]
sub esp, 0x18
mov dword [esp], eax
mov eax, dword [ebp - 0x450]
call eax
mov eax, dword [ebp - 0x438]
sub esp, 4
mov dword [esp + 4], 0x52f29f
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52f123
mov edx, 0x52f12b
sub esp, 8
mov dword [esp + 8], 0xb26
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f12b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52f137
mov edx, 0x52f13d
sub esp, 8
mov dword [esp + 8], 0xb27
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f13d
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
lea ecx, [ebp - 0x428]
mov edx, 0x52f14c
sub esp, 8
mov dword [esp + 8], 0xb28
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f14c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
lea ecx, [ebp - 0x324]
mov edx, 0x52f158
sub esp, 8
mov dword [esp + 8], 0xb29
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f158
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.ModifyPath
sub esp, 8
mov dword [esp + 8], 0xb2a
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.ModifyPath
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, str.Wine
mov edx, 0x52f1ad
sub esp, 8
mov dword [esp + 8], 0xb2b
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f1ad
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.UninstallString
sub esp, 8
mov dword [esp + 8], 0xb2c
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.UninstallString
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.AuthorizedCDFPrefix
sub esp, 8
mov dword [esp + 8], 0xb2d
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.AuthorizedCDFPrefix
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Comments
sub esp, 8
mov dword [esp + 8], 0xb2e
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Comments
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Contact
sub esp, 8
mov dword [esp + 8], 0xb2f
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Contact
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f1ec
sub esp, 8
mov dword [esp + 8], 0xb30
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f1ec
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f1f5
sub esp, 8
mov dword [esp + 8], 0xb31
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f1f5
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f203
sub esp, 8
mov dword [esp + 8], 0xb32
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f203
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, str.NoModify
sub esp, 8
mov dword [esp + 4], 0xb33
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.NoModify
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Readme
sub esp, 8
mov dword [esp + 8], 0xb34
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Readme
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Size
sub esp, 8
mov dword [esp + 8], 0xb35
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Size
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f228
sub esp, 8
mov dword [esp + 8], 0xb36
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f228
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f235
sub esp, 8
mov dword [esp + 8], 0xb37
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f235
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x409
mov edx, 0x52f243
sub esp, 8
mov dword [esp + 4], 0xb38
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f243
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x1010001
mov edx, 0x52f24c
sub esp, 8
mov dword [esp + 4], 0xb39
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f24c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, 0x52f254
sub esp, 8
mov dword [esp + 4], 0xb3a
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f254
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, 0x52f261
sub esp, 8
mov dword [esp + 4], 0xb3b
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f261
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, 0x52f26e
sub esp, 8
mov dword [esp + 4], 0xb3c
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f26e
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
call fcn.004025d0
mov dword [esp + 4], 0xb3d
mov edx, str.EstimatedSize
mov dword [esp], 1
mov ecx, eax
mov eax, dword [ebp - 0x438]
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.EstimatedSize
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xb40
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x438]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x434]
sub esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x43c]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 8], 0
mov dword [esp + 4], str.Usage
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyExA
mov esi, dword [str.windows]
mov ecx, 5
sub esp, 0x14
mov ebx, eax
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b250
jmp 0x40bf54
mov dword [esp + 4], 0xb46
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
call fcn.0052b2a0
call fcn.0052b280
test eax, eax
jne 0x40bf20
mov eax, dword [ebp - 0x434]
mov dword [esp + 4], 0x52ee3b
mov edi, 0x52e054
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
mov esi, dword [str.windows]
mov ecx, 5
sub esp, 8
mov ebx, eax
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b250
jmp 0x40bfd5
mov dword [esp + 4], 0xb4b
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
call fcn.0052b2a0
call fcn.0052b280
test eax, eax
jne 0x40bfa1
mov eax, dword [ebp - 0x434]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x43c]
sub esp, 4
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xb4e
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x43c]
sub esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x20119
mov dword [esp + 8], 0
mov dword [esp + 4], 0x531140
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xb52
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov dword [esp + 8], 0xb54
mov dword [esp + 4], 0
mov edx, 0x52edd8
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52edd8
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xb57
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [section..bss]
sub esp, 4
test eax, eax
je 0x40d4b1
mov esi, dword [ebp - 0x450]
mov dword [esp], 0x52e06e
mov edi, 0x52e054
call esi
sub esp, 4
mov dword [esp + 0x18], 0x52e1e8
mov dword [esp + 0x14], 0x52f2d0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xc8
mov dword [esp + 8], 9
mov dword [esp + 4], 0x532dc0
mov dword [esp], 0x52e06e
call fcn.00467500
mov dword [esp + 4], str.REGISTER_PRODUCT1_ALLUSERS1_RP_TEST641
mov dword [esp], 0x52e06e
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xb60
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xb61
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp + 4], 1
mov dword [esp], 0x52ed8c
call fcn.00467020
mov dword [esp + 4], 0x52e2b4
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xb62
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp + 4], 0
mov dword [esp], 0x52e11c
call fcn.00467020
mov dword [esp + 4], 0x52e4ac
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x43c]
mov dword [esp + 0xc], 0x20119
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareMicrosoftInstallerUpgradeCodes51AAE0C44620A5E4788506E91F249BD2
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xb65
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x43c]
mov dword [esp + 0xc], 0x20219
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x531240
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xb68
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x43c]
mov dword [esp + 0xc], 0x20119
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x531240
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xb6b
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52f123
mov dword [esp + 8], 0xb6d
mov dword [esp + 4], 0
mov edx, 0x52f12b
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f12b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52f137
mov edx, 0x52f13d
sub esp, 8
mov dword [esp + 8], 0xb6e
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f13d
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
lea ecx, [ebp - 0x428]
mov edx, 0x52f14c
sub esp, 8
mov dword [esp + 8], 0xb6f
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f14c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
lea ecx, [ebp - 0x324]
mov edx, 0x52f158
sub esp, 8
mov dword [esp + 8], 0xb70
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f158
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.ModifyPath
sub esp, 8
mov dword [esp + 8], 0xb71
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.ModifyPath
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, str.Wine
mov edx, 0x52f1ad
sub esp, 8
mov dword [esp + 8], 0xb72
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f1ad
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.UninstallString
sub esp, 8
mov dword [esp + 8], 0xb73
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.UninstallString
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.AuthorizedCDFPrefix
sub esp, 8
mov dword [esp + 8], 0xb74
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.AuthorizedCDFPrefix
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Comments
sub esp, 8
mov dword [esp + 8], 0xb75
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Comments
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Contact
sub esp, 8
mov dword [esp + 8], 0xb76
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Contact
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f1ec
sub esp, 8
mov dword [esp + 8], 0xb77
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f1ec
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f1f5
sub esp, 8
mov dword [esp + 8], 0xb78
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f1f5
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f203
sub esp, 8
mov dword [esp + 8], 0xb79
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f203
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, str.NoModify
sub esp, 8
mov dword [esp + 4], 0xb7a
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.NoModify
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Readme
sub esp, 8
mov dword [esp + 8], 0xb7b
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Readme
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, str.Size
sub esp, 8
mov dword [esp + 8], 0xb7c
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.Size
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f228
sub esp, 8
mov dword [esp + 8], 0xb7d
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f228
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov edx, 0x52f235
sub esp, 8
mov dword [esp + 8], 0xb7e
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f235
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x409
mov edx, 0x52f243
sub esp, 8
mov dword [esp + 4], 0xb7f
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f243
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 0x1010001
mov edx, 0x52f24c
sub esp, 8
mov dword [esp + 4], 0xb80
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f24c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, 0x52f254
sub esp, 8
mov dword [esp + 4], 0xb81
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f254
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, 0x52f261
sub esp, 8
mov dword [esp + 4], 0xb82
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f261
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
mov ecx, 1
mov edx, 0x52f26e
sub esp, 8
mov dword [esp + 4], 0xb83
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52f26e
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
call fcn.004025d0
mov dword [esp + 4], 0xb84
mov edx, str.EstimatedSize
mov dword [esp], 1
mov ecx, eax
mov eax, dword [ebp - 0x43c]
call fcn.00401050
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.EstimatedSize
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xb87
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x220]
sub esp, 4
mov dword [esp + 8], 0x52eec0
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerUserData_sProducts84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp], eax
call fcn.004013d0
lea eax, [ebp - 0x43c]
mov dword [esp + 0xc], 0x20119
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x220]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xb8c
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x438]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x43c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f28d
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xb8f
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x430]
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x42c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f29f
mov dword [esp], eax
mov dword [ebp - 0x430], 0x104
call sub.advapi32.dll_RegQueryValueExA
lea eax, [ebp - 0x11c]
sub esp, 0x18
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x438]
sub esp, 4
mov dword [esp + 4], 0x52f29f
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52f123
mov edx, 0x52f12b
sub esp, 8
mov dword [esp + 8], 0xb96
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f12b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52f137
mov edx, 0x52f13d
sub esp, 8
mov dword [esp + 8], 0xb97
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f13d
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
lea ecx, [ebp - 0x428]
mov edx, 0x52f14c
sub esp, 8
mov dword [esp + 8], 0xb98
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f14c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
lea ecx, [ebp - 0x324]
mov edx, 0x52f158
sub esp, 8
mov dword [esp + 8], 0xb99
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f158
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.ModifyPath
sub esp, 8
mov dword [esp + 8], 0xb9a
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.ModifyPath
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, str.Wine
mov edx, 0x52f1ad
sub esp, 8
mov dword [esp + 8], 0xb9b
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f1ad
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, str.MsiExec.exe__X7DF88A48_996F_4EC8_A022_BF956F9B2CBB
mov edx, str.UninstallString
sub esp, 8
mov dword [esp + 8], 0xb9c
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.UninstallString
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.AuthorizedCDFPrefix
sub esp, 8
mov dword [esp + 8], 0xb9d
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.AuthorizedCDFPrefix
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Comments
sub esp, 8
mov dword [esp + 8], 0xb9e
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Comments
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Contact
sub esp, 8
mov dword [esp + 8], 0xb9f
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Contact
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f1ec
sub esp, 8
mov dword [esp + 8], 0xba0
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f1ec
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f1f5
sub esp, 8
mov dword [esp + 8], 0xba1
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f1f5
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f203
sub esp, 8
mov dword [esp + 8], 0xba2
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f203
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, str.NoModify
sub esp, 8
mov dword [esp + 4], 0xba3
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.NoModify
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Readme
sub esp, 8
mov dword [esp + 8], 0xba4
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Readme
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, str.Size
sub esp, 8
mov dword [esp + 8], 0xba5
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.Size
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f228
sub esp, 8
mov dword [esp + 8], 0xba6
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f228
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x52ee3b
mov edx, 0x52f235
sub esp, 8
mov dword [esp + 8], 0xba7
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f235
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x409
mov edx, 0x52f243
sub esp, 8
mov dword [esp + 4], 0xba8
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f243
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 0x1010001
mov edx, 0x52f24c
sub esp, 8
mov dword [esp + 4], 0xba9
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f24c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, 0x52f254
sub esp, 8
mov dword [esp + 4], 0xbaa
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f254
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, 0x52f261
sub esp, 8
mov dword [esp + 4], 0xbab
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f261
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
mov ecx, 1
mov edx, 0x52f26e
sub esp, 8
mov dword [esp + 4], 0xbac
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], 0x52f26e
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
call fcn.004025d0
mov dword [esp + 4], 0xbad
mov edx, str.EstimatedSize
mov dword [esp], 1
mov ecx, eax
mov eax, dword [ebp - 0x438]
call fcn.00401050
mov eax, dword [ebp - 0x438]
mov dword [esp + 4], str.EstimatedSize
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x438]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xbb0
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x438]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x434]
sub esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x43c]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 8], 0
mov dword [esp + 4], str.Usage
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyExA
mov esi, dword [str.windows]
mov ecx, 5
sub esp, 0x14
mov ebx, eax
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b250
jmp 0x40d2b4
mov dword [esp + 4], 0xbb6
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
call fcn.0052b2a0
call fcn.0052b280
test eax, eax
jne 0x40d280
mov eax, dword [ebp - 0x434]
mov dword [esp + 4], 0x52ee3b
mov edi, 0x52e054
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
mov esi, dword [str.windows]
mov ecx, 5
sub esp, 8
mov ebx, eax
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b250
jmp 0x40d335
mov dword [esp + 4], 0xbbb
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
call fcn.0052b2a0
call fcn.0052b280
test eax, eax
jne 0x40d301
mov eax, dword [ebp - 0x434]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x43c]
sub esp, 4
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xbbe
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x43c]
sub esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x20119
mov dword [esp + 8], 0
mov dword [esp + 4], 0x531140
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xbc2
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov ecx, 0x52ee3b
mov dword [esp + 8], 0xbc4
mov dword [esp + 4], 0
mov edx, 0x52edd8
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], 0x52edd8
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x43c]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xbc7
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f11b
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
jmp 0x40d4d1
mov dword [esp + 4], 0xbcb
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp], str.64_bit_RegisterProduct_tests_n
call fcn.0052b1d0
mov edi, dword [ebp - 0x450]
mov dword [esp], 0x52e06e
mov eax, edi
call eax
mov eax, edi
sub esp, 4
mov dword [esp], 0x52ed8c
call eax
sub esp, 4
mov dword [esp], 0x52e11c
call dword [sym.imp.kernel32.dll_RemoveDirectoryA]
mov edi, dword [ebp - 0x44c]
sub esp, 4
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0xa72
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp], 0x52e124
call fcn.0052b1d0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0xa87
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp], 0x52e270
call fcn.0052b1d0
mov eax, dword [sym.imp.kernel32.dll_DeleteFileA]
mov dword [ebp - 0x450], eax
jmp 0x40d4d1