Function at 0x40f500
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 0x40fbb2
call fcn.004012d0
mov edi, eax
test eax, eax
je 0x40fbaa
lea esi, [ebp - 0x11c]
mov dword [esp + 4], str.SoftwareMicrosoftMS_Setup__ACME_User_Info
cmp dword [section..bss], 1
mov dword [esp + 8], esi
sbb ebx, ebx
mov dword [esp], 0x80000001
xor bl, bl
add ebx, 0xf013f
call sub.advapi32.dll_RegOpenKeyA
mov dword [ebp - 0x12c], 0
sub esp, 0xc
test eax, eax
je 0x40fbe0
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareMicrosoftWindows_NTCurrentVersion
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
test eax, eax
je 0x40fc68
mov dword [ebp - 0x130], 0
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f4e8
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
test eax, eax
je 0x40fcf5
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], 2
sbb ebx, ebx
xor bl, bl
add ebx, 0xf013f
call sub.msi.dll_MsiSetInternalUI
sub esp, 8
mov dword [esp + 4], str.REGISTER_USER1
mov dword [esp], 0x52e06e
call sub.msi.dll_MsiInstallProductA
sub esp, 8
cmp eax, 0x659
je 0x40fcd0
mov dword [esp + 4], 0xdaa
mov dword [esp], str..._wine_dlls_msi_tests_action.c
mov dword [ebp - 0x134], eax
call fcn.0052ae70
mov eax, dword [ebp - 0x134]
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], 0xdab
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], 0xdac
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 + 8], edi
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerUserData_sProducts84A88FD7F6998CE40A22FB59F6B9C2BBInstallProperties
mov dword [esp], esi
call fcn.004013d0
lea eax, [ebp - 0x120]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
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 - 0x134], eax
mov dword [esp + 4], 0xdb0
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov eax, dword [ebp - 0x134]
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, 0x52f522
mov dword [esp + 8], 0xdb2
mov dword [esp + 4], 0
mov edx, 0x52f527
mov dword [esp], 1
call fcn.004095d0
mov ecx, dword [ebp - 0x12c]
mov edx, 0x52f531
mov dword [esp + 8], 0xdb3
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x120]
mov dword [esp], 1
call fcn.004095d0
mov ecx, dword [ebp - 0x130]
mov edx, 0x52f53c
mov dword [esp + 8], 0xdb4
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x120]
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], 0x52f527
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
sub esp, 8
mov dword [esp + 4], 0x52f531
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
sub esp, 8
mov dword [esp + 4], 0x52f53c
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], edi
mov dword [esp + 4], 0x530bc0
mov dword [esp], esi
call fcn.004013d0
mov ecx, ebx
mov edx, esi
mov eax, 0x80000002
call fcn.00401000
mov dword [esp + 4], str.REGISTER_USER1_ALLUSERS1
mov dword [esp], 0x52e06e
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov dword [ebp - 0x134], eax
mov dword [esp + 4], 0xdc0
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov eax, dword [ebp - 0x134]
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], 0xdc1
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], 0xdc2
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 + 8], 0x52eec0
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerUserData_sProducts84A88FD7F6998CE40A22FB59F6B9C2BBInstallProperties
mov dword [esp], esi
call fcn.004013d0
lea eax, [ebp - 0x120]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
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 - 0x134], eax
mov dword [esp + 4], 0xdc6
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov eax, dword [ebp - 0x134]
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, 0x52f522
mov dword [esp + 8], 0xdc8
mov dword [esp + 4], 0
mov edx, 0x52f527
mov dword [esp], 1
call fcn.004095d0
mov ecx, dword [ebp - 0x12c]
mov edx, 0x52f531
mov dword [esp + 8], 0xdc9
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x120]
mov dword [esp], 1
call fcn.004095d0
mov ecx, dword [ebp - 0x130]
mov edx, 0x52f53c
mov dword [esp + 8], 0xdca
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x120]
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], 0x52f527
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
sub esp, 8
mov dword [esp + 4], 0x52f531
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x120]
sub esp, 8
mov dword [esp + 4], 0x52f53c
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], 0x530bc0
mov dword [esp], esi
call fcn.004013d0
mov ecx, ebx
mov edx, esi
mov eax, 0x80000002
call fcn.00401000
mov eax, dword [ebp - 0x12c]
mov dword [esp + 4], 0
mov esi, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov ebx, dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x130]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov ebx, dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 0xc
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]
sub esp, 4
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_LocalFree]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0xd90
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 eax, dword [ebp - 0x11c]
mov edx, 0x52f4ad
call fcn.00401210
mov edx, 0x52f4b5
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x11c]
call fcn.00401210
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x11c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x130]
sub esp, 4
test eax, eax
je 0x40f56c
mov ecx, dword [ebp - 0x12c]
test ecx, ecx
jne 0x40f5d4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareMicrosoftWindows_NTCurrentVersion
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
sub esp, 0x14
test eax, eax
jne 0x40f5a5
mov eax, dword [ebp - 0x11c]
mov edx, 0x52f4c0
call fcn.00401210
mov edx, 0x52f4d0
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x11c]
call fcn.00401210
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x11c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov edx, dword [ebp - 0x130]
sub esp, 4
test edx, edx
je 0x40f5a5
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x40f5a5
jmp 0x40f5d4
mov dword [esp + 4], 0xda7
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp], 0x52e270
call fcn.0052b1d0
jmp 0x40fb23
mov eax, dword [ebp - 0x11c]
mov edx, 0x52f4c0
call fcn.00401210
mov edx, 0x52f4d0
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x11c]
call fcn.00401210
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x11c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
jmp 0x40f5d4