Function at 0x40d590
Capabilities:
Create directory
Delete directory
Delete file
Delete registry value
Get number of processors
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x14c
call fcn.004665f0
test eax, eax
jne 0x40de50
call fcn.004012d0
mov dword [ebp - 0x12c], eax
test eax, eax
je 0x40de42
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
cmp dword [section..bss], 1
mov dword [esp], 5
sbb ebx, ebx
xor bl, bl
add ebx, 0xf013f
call sub.msi.dll_MsiSetInternalUI
sub esp, 8
mov dword [esp + 4], str.PUBLISH_FEATURES1
mov dword [esp], 0x52e06e
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov esi, eax
cmp eax, 0x659
je 0x40de80
mov dword [esp + 4], 0xcf0
lea edi, [ebp - 0x120]
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xcf1
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], 0xcf2
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 dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerFeatures
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov esi, eax
mov dword [esp + 4], 0xcf5
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareClassesInstallerFeatures84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov esi, eax
mov dword [esp + 4], 0xcf8
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], edi
mov dword [esp + 4], str.SoftwareMicrosoftInstallerFeatures84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0xcfb
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52ea88
lea esi, [ebp - 0x11c]
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x120]
mov ecx, 0x52ee3b
mov dword [esp + 8], 0xcfd
mov dword [esp + 4], 0
mov edx, 0x52f324
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x120]
mov ecx, 0x52ee3b
mov dword [esp + 8], 0xcfe
mov dword [esp + 4], 0
mov edx, 0x52f32c
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], 0x52f324
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
sub esp, 8
mov dword [esp + 4], 0x52f32c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
mov ecx, ebx
mov edx, 0x52ee3b
sub esp, 8
call fcn.00401000
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x12c]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerUserData_sProducts84A88FD7F6998CE40A22FB59F6B9C2BBFeatures
mov dword [esp], esi
call fcn.004013d0
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov dword [ebp - 0x130], eax
mov dword [esp + 4], 0xd07
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], 0x52ea88
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x120]
mov ecx, 0x52f338
mov dword [esp + 8], 0xd09
mov dword [esp + 4], 0
mov edx, 0x52f324
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x120]
mov ecx, 0x52f338
mov dword [esp + 8], 0xd0a
mov dword [esp + 4], 0
mov edx, 0x52f32c
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], 0x52f324
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
sub esp, 8
mov dword [esp + 4], 0x52f32c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
mov ecx, ebx
mov edx, 0x52ee3b
sub esp, 8
call fcn.00401000
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x12c]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 0x530cc0
mov dword [esp], esi
call fcn.004013d0
mov ecx, ebx
mov edx, esi
mov eax, 0x80000002
call fcn.00401000
mov dword [esp + 4], str.PUBLISH_FEATURES1_ALLUSERS1
mov dword [esp], 0x52e06e
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov dword [ebp - 0x130], eax
mov dword [esp + 4], 0xd15
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], 0x52ea88
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xd16
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], 0xd17
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 dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerFeatures
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov dword [ebp - 0x130], eax
mov dword [esp + 4], 0xd1a
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], 0x52ee14
cmp eax, 2
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], edi
mov dword [esp + 4], str.SoftwareMicrosoftInstallerFeatures84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov dword [ebp - 0x130], eax
mov dword [esp + 4], 0xd1d
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], 0x52ee14
cmp eax, 2
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareClassesInstallerFeatures84A88FD7F6998CE40A22FB59F6B9C2BB
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov dword [ebp - 0x130], eax
mov dword [esp + 4], 0xd1f
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], 0x52ea88
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x120]
mov ecx, 0x52ee3b
mov dword [esp + 8], 0xd21
mov dword [esp + 4], 0
mov edx, 0x52f324
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x120]
mov ecx, 0x52ee3b
mov dword [esp + 8], 0xd22
mov dword [esp + 4], 0
mov edx, 0x52f32c
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], 0x52f324
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
sub esp, 8
mov dword [esp + 4], 0x52f32c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
mov ecx, ebx
mov edx, 0x52ee3b
sub esp, 8
call fcn.00401000
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
mov dword [esp + 8], 0x52eec0
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerUserData_sProducts84A88FD7F6998CE40A22FB59F6B9C2BBFeatures
mov dword [esp], esi
call fcn.004013d0
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
mov edi, eax
mov dword [esp + 4], 0xd2b
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x120]
mov ecx, 0x52f338
mov dword [esp + 8], 0xd2d
mov dword [esp + 4], 0
mov edx, 0x52f324
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x120]
mov ecx, 0x52f338
mov dword [esp + 8], 0xd2e
mov dword [esp + 4], 0
mov edx, 0x52f32c
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], 0x52f324
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
sub esp, 8
mov dword [esp + 4], 0x52f32c
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
mov ecx, ebx
mov edx, 0x52ee3b
sub esp, 8
call fcn.00401000
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
mov dword [esp + 8], 0x52eec0
mov dword [esp + 4], 0x530cc0
mov dword [esp], esi
call fcn.004013d0
mov ecx, ebx
mov edx, esi
mov eax, 0x80000002
call fcn.00401000
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 edi, dword [ebp - 0x12c]
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], 0xcd8
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], 0xced
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp], 0x52e270
call fcn.0052b1d0
jmp 0x40ddea