Function at 0x40deb0
Capabilities:
Create directory
Delete directory
Delete file
Delete registry key
Delete registry value
Get common file path
Get number of processors
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x36c
call fcn.004665f0
test eax, eax
jne 0x40f010
call fcn.004012d0
mov dword [ebp - 0x350], eax
test eax, eax
je 0x40f006
lea eax, [ebp - 0x220]
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
cmp dword [section..bss], 1
mov dword [esp + 4], 0
sbb eax, eax
mov dword [esp], 5
xor al, al
add eax, 0xf013f
mov dword [ebp - 0x34c], eax
call sub.msi.dll_MsiSetInternalUI
sub esp, 8
mov dword [esp + 4], 0x52ef90
mov dword [esp], 0x52e06e
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov ebx, eax
cmp eax, 0x659
je 0x40f460
mov dword [esp + 4], 0xc0b
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], 0xc0c
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], 0xc0d
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
mov esi, dword [ebp - 0x34c]
lea eax, [ebp - 0x330]
mov dword [esp + 8], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerProducts84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xc10
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
mov eax, dword [ebp - 0x350]
mov dword [esp + 4], 0x531040
mov dword [esp + 8], eax
lea eax, [ebp - 0x324]
mov dword [esp], eax
call fcn.004013d0
lea eax, [ebp - 0x330]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x324]
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
cmp eax, 2
je 0x40f370
mov dword [esp + 4], 0xc24
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
lea eax, [ebp - 0x334]
mov esi, dword [ebp - 0x34c]
mov dword [esp + 8], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x330]
mov dword [esp + 0xc], esi
mov dword [esp + 4], 0x52f28d
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xc27
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 - 0x32c]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x330]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f3b5
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 0x40e239
mov dword [esp + 4], 0xc2a
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 0x40e205
mov dword [ebp - 0x354], eax
mov eax, dword [ebp - 0x32c]
test ebx, ebx
je 0x40f320
mov esi, dword [ebp - 0x34c]
mov edx, 0x52ee3b
mov ecx, esi
call fcn.00401000
mov eax, dword [ebp - 0x32c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x330]
mov ecx, esi
mov edx, 0x52ee3b
sub esp, 4
call fcn.00401000
mov eax, dword [ebp - 0x330]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
lea eax, [ebp - 0x330]
mov dword [esp + 4], str.SoftwareMicrosoftInstallerProducts84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp + 8], eax
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc35
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 - 0x330]
mov ecx, 0x52f123
mov dword [esp + 8], 0xc37
mov dword [esp + 4], 0
mov edx, 0x52f3c8
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f3c8
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
mov ecx, 0x52f3d4
mov edx, 0x52f3f5
sub esp, 8
mov dword [esp + 8], 0xc38
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f3f5
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
mov ecx, 0x409
mov edx, 0x52f243
sub esp, 8
mov dword [esp + 4], 0xc39
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f243
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
mov ecx, 0x1010001
mov edx, 0x52f24c
sub esp, 8
mov dword [esp + 4], 0xc3a
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f24c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov ecx, dword [ebp - 0x354]
sub esp, 8
test ecx, ecx
je 0x40f3e0
mov dword [esp + 4], 0xc3d
mov eax, dword [ebp - 0x330]
xor ecx, ecx
mov edx, 0x52f412
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f412
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
mov ecx, 0x184
mov edx, str.AdvertiseFlags
sub esp, 8
mov dword [esp + 4], 0xc3e
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], str.AdvertiseFlags
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
xor ecx, ecx
mov edx, 0x52f42c
sub esp, 8
mov dword [esp + 4], 0xc3f
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f42c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
mov ecx, 0x52f439
mov edx, 0x52f43c
sub esp, 8
mov dword [esp], 0xc40
call fcn.00409250
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f43c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
lea eax, [ebp - 0x33c]
sub esp, 8
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f444
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc43
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 - 0x220]
mov dword [ebp - 0x11c], 0x3b313b6e
mov dword [esp + 4], eax
lea eax, [ebp - 0x118]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov eax, dword [ebp - 0x33c]
mov edx, 0x52f020
mov dword [esp + 8], 0xc47
mov dword [esp + 4], 0
lea ecx, [ebp - 0x11c]
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x33c]
mov dword [esp + 4], 0x52f020
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x33c]
mov ecx, 0x52e06e
mov edx, 0x52ef16
sub esp, 8
mov dword [esp + 8], 0xc48
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x33c]
mov dword [esp + 4], 0x52ef16
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
lea eax, [ebp - 0x338]
sub esp, 8
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x33c]
mov dword [esp + 4], 0x52f44f
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc4b
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 - 0x338]
mov edx, 0x52f453
mov dword [esp + 8], 0xc4d
mov dword [esp + 4], 0
lea ecx, [ebp - 0x220]
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x338]
mov dword [esp + 4], 0x52f453
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x338]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
mov eax, dword [ebp - 0x338]
sub esp, 8
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x328]
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x33c]
mov dword [esp + 4], 0x52f455
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc53
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 - 0x328]
mov ecx, str.DISK1_
mov dword [esp + 8], 0xc55
mov dword [esp + 4], 0
mov edx, 0x52f453
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x328]
mov dword [esp + 4], 0x52f453
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x328]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
mov eax, dword [ebp - 0x328]
sub esp, 8
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x33c]
sub esp, 4
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
mov eax, dword [ebp - 0x33c]
sub esp, 8
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x330]
sub esp, 4
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
mov eax, dword [ebp - 0x330]
sub esp, 8
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x330]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 0x530f80
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc5f
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 - 0x330]
mov edx, 0x52edd8
mov dword [esp + 8], 0xc61
mov dword [esp + 4], 0
mov ecx, 0x52ee3b
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52edd8
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
sub esp, 8
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
mov eax, dword [ebp - 0x330]
sub esp, 8
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
mov dword [esp + 4], 0x52f462
mov dword [esp], 0x52e06e
call sub.msi.dll_MsiInstallProductA
mov edx, dword [ebp - 0x354]
sub esp, 8
mov ebx, eax
test edx, edx
je 0x40f040
lea eax, [ebp - 0x330]
mov dword [esp + 8], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x34c]
mov dword [esp + 4], str.SoftwareClassesInstallerProducts84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp + 0xc], eax
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xc84
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 - 0x330]
mov ecx, 0x52f123
mov dword [esp + 8], 0xc86
mov dword [esp + 4], 0
mov edx, 0x52f3c8
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f3c8
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
mov ecx, 0x52f3d4
mov edx, 0x52f3f5
sub esp, 8
mov dword [esp + 8], 0xc87
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f3f5
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
mov ecx, 0x409
mov edx, 0x52f243
sub esp, 8
mov dword [esp + 4], 0xc88
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f243
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
mov ecx, 0x1010001
mov edx, 0x52f24c
sub esp, 8
mov dword [esp + 4], 0xc89
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f24c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x354]
sub esp, 8
test eax, eax
je 0x40f420
mov eax, dword [ebp - 0x330]
mov ecx, 1
mov edx, 0x52f412
mov dword [esp + 4], 0xc8c
mov dword [esp], 1
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f412
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
mov ecx, 0x184
mov edx, str.AdvertiseFlags
sub esp, 8
mov dword [esp + 4], 0xc8d
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], str.AdvertiseFlags
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
xor ecx, ecx
mov edx, 0x52f42c
sub esp, 8
mov dword [esp + 4], 0xc8e
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f42c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
mov ecx, 0x52f439
mov edx, 0x52f43c
sub esp, 8
mov dword [esp], 0xc8f
call fcn.00409250
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f43c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
lea eax, [ebp - 0x33c]
mov edi, dword [ebp - 0x34c]
sub esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x330]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f444
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xc92
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 - 0x220]
mov dword [ebp - 0x11c], 0x3b313b6e
mov dword [esp + 4], eax
lea eax, [ebp - 0x118]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov eax, dword [ebp - 0x33c]
mov edx, 0x52f020
mov dword [esp + 8], 0xc96
mov dword [esp + 4], 0
lea ecx, [ebp - 0x11c]
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x33c]
mov dword [esp + 4], 0x52f020
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x33c]
mov ecx, 0x52e06e
mov edx, 0x52ef16
sub esp, 8
mov dword [esp + 8], 0xc97
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x33c]
mov dword [esp + 4], 0x52ef16
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
lea eax, [ebp - 0x338]
sub esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x33c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f44f
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xc9a
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 - 0x338]
mov edx, 0x52f453
mov dword [esp + 8], 0xc9c
mov dword [esp + 4], 0
lea ecx, [ebp - 0x220]
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x338]
mov dword [esp + 4], 0x52f453
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x338]
mov ecx, edi
mov edx, 0x52ee3b
sub esp, 8
call fcn.00401000
mov dword [esp + 4], 0xc9f
mov dword [esp], str..._wine_dlls_msi_tests_action.c
mov ebx, eax
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 - 0x338]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x328]
sub esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x33c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f455
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xca3
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 - 0x328]
mov ecx, str.DISK1_
mov dword [esp + 8], 0xca5
mov dword [esp + 4], 0
mov edx, 0x52f453
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x328]
mov dword [esp + 4], 0x52f453
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x328]
mov ecx, edi
mov edx, 0x52ee3b
sub esp, 8
call fcn.00401000
mov dword [esp + 4], 0xca8
mov dword [esp], str..._wine_dlls_msi_tests_action.c
mov ebx, eax
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 - 0x328]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x33c]
mov ecx, edi
mov edx, 0x52ee3b
sub esp, 4
call fcn.00401000
mov dword [esp + 4], 0xcab
mov dword [esp], str..._wine_dlls_msi_tests_action.c
mov ebx, eax
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 - 0x33c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x330]
mov ecx, edi
mov edx, 0x52ee3b
sub esp, 4
call fcn.00401000
mov dword [esp + 4], 0xcae
mov dword [esp], str..._wine_dlls_msi_tests_action.c
mov ebx, eax
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 - 0x330]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
lea eax, [ebp - 0x330]
sub esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareClassesInstallerUpgradeCodes51AAE0C44620A5E4788506E91F249BD2
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xcb2
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 - 0x330]
mov ecx, 0x52ee3b
mov dword [esp + 8], 0xcb4
mov dword [esp + 4], 0
mov edx, 0x52edd8
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52edd8
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x330]
mov ecx, edi
mov edx, 0x52ee3b
sub esp, 8
call fcn.00401000
mov dword [esp + 4], 0xcb7
mov dword [esp], str..._wine_dlls_msi_tests_action.c
mov ebx, eax
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 - 0x330]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
mov ebx, dword [sym.imp.kernel32.dll_DeleteFileA]
mov dword [esp], 0x52e06e
call ebx
sub esp, 4
mov dword [esp], 0x52ed8c
call ebx
sub esp, 4
mov dword [esp], 0x52e11c
call dword [sym.imp.kernel32.dll_RemoveDirectoryA]
mov esi, dword [ebp - 0x350]
sub esp, 4
mov dword [esp + 8], esi
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], 0xbf1
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], 0xc6a
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], 0xc6b
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], 0xc6c
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
mov esi, dword [ebp - 0x34c]
lea eax, [ebp - 0x330]
mov dword [esp + 8], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerProducts84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xc6f
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 - 0x324]
mov dword [esp + 8], 0x52eec0
mov dword [esp + 4], 0x531040
mov dword [esp], eax
call fcn.004013d0
lea eax, [ebp - 0x330]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x324]
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], 0xc73
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 - 0x334]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x330]
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], 0xc76
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 - 0x32c]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x330]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f3b5
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 0x40f2b4
mov dword [esp + 4], 0xc79
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 0x40f280
mov eax, dword [ebp - 0x32c]
test ebx, ebx
je 0x40f4b0
mov esi, dword [ebp - 0x34c]
mov edx, 0x52ee3b
mov ecx, esi
call fcn.00401000
mov eax, dword [ebp - 0x32c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x330]
mov ecx, esi
mov edx, 0x52ee3b
sub esp, 4
call fcn.00401000
mov eax, dword [ebp - 0x330]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
jmp 0x40e8aa
mov dword [esp + 8], 0xc2c
mov ecx, 0x52ee3b
mov edx, str.AllPatches
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x32c]
mov dword [esp + 4], str.AllPatches
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x32c]
sub esp, 8
jmp 0x40e256
lea eax, [ebp - 0x330]
mov dword [esp + 4], str.SoftwareMicrosoftInstallerProducts84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp + 8], eax
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
test eax, eax
jne 0x40f485
mov dword [esp + 4], 0xc19
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp], 0x52f36c
call fcn.0052b1f0
mov eax, dword [ebp - 0x330]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov dword [ebp - 0x354], 1
sub esp, 4
jmp 0x40e29c
mov dword [esp + 4], 0xc3c
mov eax, dword [ebp - 0x330]
xor ecx, ecx
mov edx, 0x52f401
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f401
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
jmp 0x40e400
mov dword [esp + 4], 0xc8b
mov eax, dword [ebp - 0x330]
xor ecx, ecx
mov edx, 0x52f401
mov dword [esp], 0
call fcn.00401050
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], 0x52f401
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
jmp 0x40ea20
mov dword [esp + 4], 0xc08
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp], 0x52e270
call fcn.0052b1d0
jmp 0x40efae
mov dword [esp + 4], 0xc20
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp], str.Install_failed__no_need_to_continue_n
call fcn.0052b1f0
jmp 0x40f006
mov dword [esp + 8], 0xc7b
mov ecx, 0x52ee3b
mov edx, str.AllPatches
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x32c]
mov dword [esp + 4], str.AllPatches
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x32c]
sub esp, 8
jmp 0x40f2cb