Function at 0x4528c0
Capabilities:
Access peb ldr_data
Delete file
Get number of processors
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, dword fs:[0x18]
sub esp, 0x5c
mov dword [ebp - 0x40], eax
mov eax, dword [sym.imp.kernel32.dll_DeleteFileA]
mov dword [ebp - 0x2c], 0
mov dword [esp], str.winetest_format.msi
mov dword [ebp - 0x44], eax
call eax
mov edi, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
sub esp, 4
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.winetest_format.msi
mov dword [esp + 4], 0
mov dword [esp], 0
call edi
sub esp, 0x18
mov ecx, eax
add eax, eax
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x3c], ecx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
test eax, eax
je 0x452e15
mov ecx, dword [ebp - 0x3c]
mov ebx, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x14], ecx
mov dword [esp + 8], str.winetest_format.msi
mov dword [esp + 4], 0
mov dword [esp], 0
call edi
lea eax, [ebp - 0x2c]
sub esp, 0x18
mov dword [esp + 8], eax
mov dword [esp + 4], 4
mov dword [esp], ebx
call sub.msi.dll_MsiOpenDatabaseW
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
mov dword [esp + 4], 0x47
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], 0x54eac4
mov dword [esp], eax
call fcn.0052b0e0
test edi, edi
je 0x452a00
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseCommit
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x4c
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Failed_to_commit_database__u_n
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x30]
mov dword [esp + 8], 7
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msi.dll_MsiGetSummaryInformationA
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x50
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54eb00
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 0x54eb1c
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1e
mov dword [esp + 4], 2
mov dword [esp], eax
call sub.msi.dll_MsiSummaryInfoSetPropertyA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x54
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54eb32
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 0x54eb1c
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1e
mov dword [esp + 4], 3
mov dword [esp], eax
call sub.msi.dll_MsiSummaryInfoSetPropertyA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x58
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54eb32
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 0x54eb4e
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1e
mov dword [esp + 4], 4
mov dword [esp], eax
call sub.msi.dll_MsiSummaryInfoSetPropertyA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x5c
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54eb32
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 0x54eb5b
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1e
mov dword [esp + 4], 7
mov dword [esp], eax
call sub.msi.dll_MsiSummaryInfoSetPropertyA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x60
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54eb32
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 0x54eb64
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1e
mov dword [esp + 4], 9
mov dword [esp], eax
call sub.msi.dll_MsiSummaryInfoSetPropertyA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x64
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54eb32
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x64
mov dword [esp + 8], 3
mov dword [esp + 4], 0xe
mov dword [esp], eax
call sub.msi.dll_MsiSummaryInfoSetPropertyA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x67
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54eb32
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0xf
mov dword [esp], eax
call sub.msi.dll_MsiSummaryInfoSetPropertyA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x6a
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54eb32
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sub.msi.dll_MsiSummaryInfoPersist
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x6d
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54eb8c
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x70
mov dword [esp], str..._wine_dlls_msi_tests_format.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54ebb1
sete al
lea ebx, [ebp - 0x24]
mov dword [esp], eax
call fcn.0052b0e0
mov esi, dword [ebp - 0x2c]
mov dword [esp + 4], 0x54eaa0
mov dword [esp], ebx
mov dword [esp + 8], esi
call fcn.00452890
lea eax, [ebp - 0x28]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msi.dll_MsiOpenPackageA
sub esp, 8
mov edi, eax
test eax, eax
je 0x452e24
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x44]
sub esp, 4
mov dword [esp], str.winetest_format.msi
call eax
mov eax, edi
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea esp, [ebp - 0xc]
mov edi, 0xe
pop ebx
mov eax, edi
pop esi
pop edi
pop ebp
ret
mov dword [esp], esi
call sub.msi.dll_MsiCloseHandle
sub esp, 4
mov edi, eax
test eax, eax
jne 0x452e55
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x28]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x40]
sub esp, 4
mov dword [eax], ebx
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
sub esp, 4
jmp 0x452dee