Function at 0x4f3970
Capabilities:
Access peb ldr_data
Check if file exists
Delete file
Get common file path
Get file attributes
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, dword fs:[0x18]
sub esp, 0x35c
call fcn.004d3630
mov dword [esp + 4], 0x4ce
mov dword [esp], str..._wine_dlls_msi_tests_package.c
mov edi, eax
call fcn.0052ae70
mov dword [esp], edi
mov dword [esp + 4], str.failed_to_create_package_database_n
mov dword [ebp - 0x34c], edi
call fcn.0052b0e0
mov dword [esp + 8], 0x6f
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], str.TARGETDIR____SourceDir
mov dword [esp + 4], str.INSERT_INTO__Directory____Directory___Directory_Parent___DefaultDir___VALUES___s__
mov dword [esp], eax
call fcn.004d3c10
mov eax, dword [ebp - 0x34c]
mov edx, edi
call fcn.004d35b0
mov dword [esp + 8], edi
mov ecx, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 4], 0
mov dword [ebp - 0x354], eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x350], ecx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
sub esp, 0xc
mov dword [esp + 4], 0x4d0
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edx, dword [ebp - 0x354]
xor eax, eax
mov dword [esp + 8], 0x5698ec
mov dword [esp + 4], str.failed_to_insert_into__s_table:__u_n
test edx, edx
mov dword [esp + 0xc], edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x34c]
call fcn.004d3760
mov dword [esp + 8], 0xcb
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], str.RootComp__83e2694d_0864_4124_9323_6d37630912a1__TARGETDIR__8____RootFile
mov dword [esp + 4], str.INSERT_INTO__Component_____Component____ComponentId____Directory_____Attributes____Condition____KeyPath___VALUES___s__
mov dword [esp], eax
call fcn.004d3c10
mov eax, dword [ebp - 0x34c]
mov edx, edi
call fcn.004d35b0
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x350]
mov dword [esp + 4], 0
mov dword [ebp - 0x354], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
sub esp, 0xc
mov dword [esp + 4], 0x4d3
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edx, dword [ebp - 0x354]
xor eax, eax
mov dword [esp + 8], 0x56be63
mov dword [esp + 4], str.failed_to_insert_into__s_table:__u_n
test edx, edx
mov dword [esp + 0xc], edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0xc9
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], str.TestComp__A3FB59C8_C293_4F7E_B8C5_F0E1D8EEE4E5__TestDir__0____TestFile
mov dword [esp + 4], str.INSERT_INTO__Component_____Component____ComponentId____Directory_____Attributes____Condition____KeyPath___VALUES___s__
mov dword [esp], eax
call fcn.004d3c10
mov eax, dword [ebp - 0x34c]
mov edx, edi
call fcn.004d35b0
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x350]
mov dword [esp + 4], 0
mov dword [ebp - 0x354], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
sub esp, 0xc
mov dword [esp + 4], 0x4d4
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edx, dword [ebp - 0x354]
xor eax, eax
mov dword [esp + 8], 0x56be63
mov dword [esp + 4], str.failed_to_insert_into__s_table:__u_n
test edx, edx
mov dword [esp + 0xc], edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x34c]
call fcn.004d37b0
mov dword [esp + 8], 0xaf
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], str.TestFeature________0__1____0
mov dword [esp + 4], str.INSERT_INTO__Feature____Feature____Feature_Parent____Title____Description____Display____Level____Directory_____Attributes___VALUES___s__
mov dword [esp], eax
call fcn.004d3c10
mov eax, dword [ebp - 0x34c]
mov edx, edi
call fcn.004d35b0
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x350]
mov dword [esp + 4], 0
mov dword [ebp - 0x354], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
sub esp, 0xc
mov dword [esp + 4], 0x4d7
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edx, dword [ebp - 0x354]
xor eax, eax
mov dword [esp + 8], 0x56bdb0
mov dword [esp + 4], str.failed_to_insert_into__s_table:__u_n
test edx, edx
mov dword [esp + 0xc], edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x34c]
call fcn.004d3800
mov dword [esp + 8], 0x61
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], str.TestFeature__RootComp
mov dword [esp + 4], str.INSERT_INTO__FeatureComponents____Feature_____Component____VALUES___s__
mov dword [esp], eax
call fcn.004d3c10
mov eax, dword [ebp - 0x34c]
mov edx, edi
call fcn.004d35b0
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x350]
mov dword [esp + 4], 0
mov dword [ebp - 0x354], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
sub esp, 0xc
mov dword [esp + 4], 0x4da
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edx, dword [ebp - 0x354]
xor eax, eax
mov dword [esp + 8], 0x56c7f4
mov dword [esp + 4], str.failed_to_insert_into__s_table:__u_n
test edx, edx
mov dword [esp + 0xc], edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0x61
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], str.TestFeature__TestComp
mov dword [esp + 4], str.INSERT_INTO__FeatureComponents____Feature_____Component____VALUES___s__
mov dword [esp], eax
call fcn.004d3c10
mov eax, dword [ebp - 0x34c]
mov edx, edi
call fcn.004d35b0
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x350]
mov dword [esp + 4], 0
mov dword [ebp - 0x354], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
sub esp, 0xc
mov dword [esp + 4], 0x4db
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edx, dword [ebp - 0x354]
xor eax, eax
mov dword [esp + 8], 0x56c7f4
mov dword [esp + 4], str.failed_to_insert_into__s_table:__u_n
test edx, edx
mov dword [esp + 0xc], edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0x7a
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], str.TestParent__TARGETDIR__TestParent
mov dword [esp + 4], str.INSERT_INTO__Directory____Directory___Directory_Parent___DefaultDir___VALUES___s__
mov dword [esp], eax
call fcn.004d3c10
mov eax, dword [ebp - 0x34c]
mov edx, edi
call fcn.004d35b0
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x350]
mov dword [esp + 4], 0
mov dword [ebp - 0x354], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
sub esp, 0xc
mov dword [esp + 4], 0x4dd
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edx, dword [ebp - 0x354]
xor eax, eax
mov dword [esp + 8], 0x5698ec
mov dword [esp + 4], str.failed_to_insert_into__s_table:__u_n
test edx, edx
mov dword [esp + 0xc], edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0x75
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], str.TestDir__TestParent__TestDir
mov dword [esp + 4], str.INSERT_INTO__Directory____Directory___Directory_Parent___DefaultDir___VALUES___s__
mov dword [esp], eax
call fcn.004d3c10
mov eax, dword [ebp - 0x34c]
mov edx, edi
call fcn.004d35b0
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x350]
mov dword [esp + 4], 0
mov dword [ebp - 0x354], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
sub esp, 0xc
mov dword [esp + 4], 0x4de
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edx, dword [ebp - 0x354]
xor eax, eax
mov dword [esp + 8], 0x5698ec
mov dword [esp + 4], str.failed_to_insert_into__s_table:__u_n
test edx, edx
mov dword [esp + 0xc], edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x34c]
call fcn.004d3850
mov dword [esp + 8], 0xbe
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], str.RootFile__RootComp__rootfile.txt__0____1033__8192__1
mov dword [esp + 4], str.INSERT_INTO__File____File____Component_____FileName____FileSize____Version____Language____Attributes____Sequence___VALUES___s__
mov dword [esp], eax
call fcn.004d3c10
mov eax, dword [ebp - 0x34c]
mov edx, edi
call fcn.004d35b0
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x350]
mov dword [esp + 4], 0
mov dword [ebp - 0x354], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
sub esp, 0xc
mov dword [esp + 4], 0x4e1
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edx, dword [ebp - 0x354]
xor eax, eax
mov dword [esp + 8], 0x56c9cb
mov dword [esp + 4], str.failed_to_insert_into__s_table:__u_n
test edx, edx
mov dword [esp + 0xc], edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0xbe
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov esi, eax
mov dword [esp + 8], str.TestFile__TestComp__testfile.txt__0____1033__8192__1
mov dword [esp + 4], str.INSERT_INTO__File____File____Component_____FileName____FileSize____Version____Language____Attributes____Sequence___VALUES___s__
mov dword [esp], eax
call fcn.004d3c10
mov eax, dword [ebp - 0x34c]
mov edx, esi
call fcn.004d35b0
mov dword [esp + 8], esi
mov ecx, dword [ebp - 0x350]
mov edi, eax
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
sub esp, 0xc
mov dword [esp + 4], 0x4e2
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 0xc], edi
sete al
mov dword [esp + 8], 0x56c9cb
mov dword [esp], eax
mov dword [esp + 4], str.failed_to_insert_into__s_table:__u_n
call fcn.0052b0e0
mov eax, dword [ebp - 0x34c]
lea edx, [ebp - 0x344]
call fcn.004d3c40
cmp eax, 0x659
je 0x4f4dc0
mov dword [esp + 4], 0x4eb
mov ebx, eax
lea edi, [ebp - 0x130]
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.failed_to_create_package__u_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], 2
call sub.msi.dll_MsiSetInternalUI
mov eax, dword [ebp - 0x344]
sub esp, 8
mov dword [esp + 4], 0x56997c
mov dword [esp], eax
call sub.msi.dll_MsiDoActionA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x4f0
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.cost_init_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov dword [esp + 4], 0x56999d
mov dword [esp], eax
call sub.msi.dll_MsiDoActionA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x4f3
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.file_cost_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov dword [esp + 4], 0x5699a6
mov dword [esp], eax
call sub.msi.dll_MsiDoActionA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x4f6
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.cost_finalize_failed_n
sete al
lea ebx, [ebp - 0x340]
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x348]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x344]
mov dword [esp + 4], str.OutOfNoRbDiskSpace
mov dword [esp], eax
mov byte [ebp - 0x340], 0
mov dword [ebp - 0x348], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x4fb
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.MsiGetProperty_returned__u_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x4fc
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], ebx
mov dword [esp], str.OutOfNoRbDiskSpace____s__n
call fcn.0052b110
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x4ff
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x57
mov dword [esp + 4], str.wrong_return_val_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], str.C:_bogusx
mov dword [esp + 4], 0x56e661
mov dword [esp], 0
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x502
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
cmp esi, 6
mov dword [esp + 4], str.wrong_return_val_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x56e661
mov dword [esp], eax
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x505
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x57
mov dword [esp + 4], str.wrong_return_val_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov dword [esp + 8], str.c:_bogusx
mov dword [esp + 4], 0x56e661
mov dword [esp], eax
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x508
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x10b
mov dword [esp + 4], str.wrong_return_val_n
sete al
lea esi, [ebp - 0x23c]
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x348]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x344]
mov dword [esp + 4], 0x56e66f
mov dword [esp], eax
mov dword [ebp - 0x348], 0x10b
call sub.msi.dll_MsiGetTargetPathA
sub esp, 0x10
mov dword [ebp - 0x34c], eax
mov dword [esp + 8], esi
mov dword [esp + 4], str._srootfile.txt
mov dword [esp], edi
call fcn.004d3c10
mov eax, dword [ebp - 0x344]
mov ecx, ebx
mov edx, str._RootFile_
mov byte [ebp - 0x340], 0
call fcn.004d3e60
mov dword [esp + 4], 0x50f
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x34c]
mov dword [esp + 4], str.failed_to_get_target_path:__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x510
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [sym.imp.kernel32.dll_lstrcmpA]
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [ebp - 0x34c], eax
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 8], edi
mov dword [esp + 4], 0x5695c9
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x56e6b3
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_GetTempFileNameA]
sub esp, 0x10
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s_subdir
mov dword [esp], esi
call fcn.004d3c10
mov eax, dword [ebp - 0x344]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x56e66f
mov dword [esp], eax
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov dword [ebp - 0x350], eax
mov dword [esp + 4], 0x516
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x350]
mov dword [esp + 4], str.MsiSetTargetPath_on_file_returned__d_n
test eax, eax
mov dword [esp + 8], eax
sete dl
cmp eax, 0x10b
sete al
or edx, eax
movzx edx, dl
mov dword [esp], edx
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov dword [esp + 8], esi
mov dword [esp + 4], 0x56e66f
mov dword [esp], eax
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov dword [ebp - 0x350], eax
mov dword [esp + 4], 0x51a
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x350]
mov dword [esp + 4], str.MsiSetTargetPath_on_subdir_of_file_returned__d_n
test eax, eax
mov dword [esp + 8], eax
sete dl
cmp eax, 0x10b
sete al
or edx, eax
movzx edx, dl
mov dword [esp], edx
call fcn.0052b0e0
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_DeleteFileA]
mov eax, dword [ebp - 0x344]
sub esp, 4
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x56e66f
mov dword [esp], eax
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov dword [ebp - 0x350], eax
mov dword [esp + 4], 0x520
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x350]
mov dword [esp + 4], str.MsiSetTargetPath_returned__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
sub esp, 4
mov dword [ebp - 0x350], eax
mov dword [esp + 4], 0x523
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x350]
mov dword [esp + 4], str.file_directory_exists_after_MsiSetTargetPath._Attributes:__08X_n
cmp eax, 0xffffffff
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov dword [esp + 8], esi
mov dword [esp + 4], 0x56e66f
mov dword [esp], eax
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov dword [ebp - 0x350], eax
mov dword [esp + 4], 0x526
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x350]
mov dword [esp + 4], str.MsiSetTargetPath_on_subsubdir_returned__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov byte [ebp - 0x340], 0
mov edx, esi
mov dword [ebp - 0x348], 0x103
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4f467b
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
mov eax, 0x5c
sbb edx, 3
mov word [edx], ax
lea eax, [ebp - 0x348]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x344]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x56e66f
mov dword [esp], eax
call sub.msi.dll_MsiGetTargetPathA
sub esp, 0x10
mov dword [ebp - 0x350], eax
mov dword [esp + 4], 0x52c
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x350]
mov dword [esp + 4], str.failed_to_get_target_path:__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x52d
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x34c]
mov dword [esp], ebx
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], 0x5695c9
call fcn.0052b0e0
mov dword [esp], edi
mov dword [esp + 8], esi
mov dword [esp + 4], str._srootfile.txt
call fcn.004d3c10
mov eax, dword [ebp - 0x344]
mov edx, str._RootFile_
mov ecx, ebx
call fcn.004d3e60
mov dword [esp + 4], 0x531
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x34c]
mov dword [esp], ebx
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], edi
movzx eax, al
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x5695c9
call fcn.0052b0e0
lea eax, [ebp - 0x348]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x344]
mov dword [esp + 4], str.TestParent
mov dword [esp], eax
mov byte [ebp - 0x340], 0
mov dword [ebp - 0x348], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov edi, eax
mov dword [esp + 4], 0x536
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.MsiGetProperty_returned__u_n
mov dword [esp], eax
call fcn.0052b0e0
mov edx, esi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4f4833
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
sbb edx, 3
mov dword [edx], 0x74736554
mov dword [edx + 4], 0x65726150
mov dword [edx + 8], 0x5c746e
mov dword [esp + 4], 0x538
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edi, dword [sym.imp.kernel32.dll_lstrcmpiA]
mov dword [esp + 4], esi
mov dword [esp], ebx
call edi
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], 0x56976b
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov dword [esp + 8], 0x56e7b2
mov dword [esp + 4], str.TestParent
mov dword [esp], eax
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x53b
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.MsiSetTargetPath_returned__d_n
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x348]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x344]
mov dword [esp + 4], str.TestParent
mov dword [esp], eax
mov byte [ebp - 0x340], 0
mov dword [ebp - 0x348], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x540
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.MsiGetProperty_returned__u_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x541
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp], ebx
mov dword [esp + 4], str.C:one_twoTestDir_
call edi
sub esp, 8
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.Expected__C:one_twoTestDir___got___s__n
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov ecx, ebx
mov edx, str._TestFile_
mov byte [ebp - 0x340], 0
call fcn.004d3e60
mov dword [esp + 4], 0x546
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp], ebx
mov dword [esp + 4], str.C:one_twoTestDir_testfile.txt
call edi
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], ebx
movzx eax, al
mov dword [esp + 4], str.Expected_C:one_twoTestDir_testfile.txt__got__s_n
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x348]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x344]
mov dword [esp + 4], str.TestParent
mov dword [esp], eax
mov byte [ebp - 0x340], 0
mov dword [ebp - 0x348], 0x103
call sub.msi.dll_MsiGetTargetPathA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x54c
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_to_get_target_path:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x54d
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp], ebx
mov dword [esp + 4], str.C:one_two_
call edi
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], ebx
movzx eax, al
mov dword [esp + 4], str.Expected_C:one_two__got__s_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov dword [esp + 8], str.C:one_two_three
mov dword [esp + 4], str.TestParent
mov dword [esp], eax
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x550
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.MsiSetTargetPath_returned__d_n
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x348]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x344]
mov dword [esp + 4], str.TestParent
mov dword [esp], eax
mov byte [ebp - 0x340], 0
mov dword [ebp - 0x348], 0x103
call sub.msi.dll_MsiGetTargetPathA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x555
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_to_get_target_path:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x556
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp], ebx
mov dword [esp + 4], str.C:one_two_three_
call edi
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], ebx
movzx eax, al
mov dword [esp + 4], str.Expected_C:one_two_three__got__s_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov dword [esp + 8], str.C:one_two
mov dword [esp + 4], str.TestParent
mov dword [esp], eax
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x559
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.MsiSetTargetPath_returned__d_n
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x348]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x344]
mov dword [esp + 4], str.TestParent
mov dword [esp], eax
mov byte [ebp - 0x340], 0
mov dword [ebp - 0x348], 0x103
call sub.msi.dll_MsiGetTargetPathA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x55e
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_to_get_target_path:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x55f
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp], ebx
mov dword [esp + 4], str.C:one_two_
call edi
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], ebx
movzx eax, al
mov dword [esp + 4], str.Expected__C:one_two___got__s_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov dword [esp + 8], str.C:_Program_Files__
mov dword [esp + 4], str.TestParent
mov dword [esp], eax
call sub.msi.dll_MsiSetTargetPathA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x562
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.MsiSetTargetPath_returned__d_n
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x348]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x344]
mov dword [esp + 4], str.TestParent
mov dword [esp], eax
mov byte [ebp - 0x340], 0
mov dword [ebp - 0x348], 0x103
call sub.msi.dll_MsiGetTargetPathA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x567
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_to_get_target_path:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x568
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp], ebx
mov dword [esp + 4], str.C:Program_Files_
call edi
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], ebx
movzx eax, al
mov dword [esp + 4], str.Expected__C:Program_Files___got__s_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x344]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x4e7
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp], str.Not_enough_rights_to_perform_tests_n
call fcn.0052b1d0
mov dword [esp], str.winetest_package.msi
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret