Function at 0x446750
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x428]
lea esi, [ebp - 0x324]
push ebx
sub esp, 0x46c
call fcn.00427080
mov dword [esp + 4], 0x1bc7
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov dword [ebp - 0x444], eax
call fcn.0052ae70
mov eax, dword [ebp - 0x444]
mov dword [esp + 4], str.failed_to_create_db_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x444]
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseCommit
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x1bca
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x543a37
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x444]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
lea eax, [ebp - 0x444]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], str.winetest_db.msi
call sub.msi.dll_MsiOpenDatabaseW
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1bcf
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.Failed_to_open_database_n
sete al
lea ebx, [ebp - 0x220]
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x444]
mov ecx, 1
mov edx, 0x54adb9
call fcn.00439000
mov dword [esp + 4], 0x1bd3
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov dword [ebp - 0x43c], eax
call fcn.0052ae70
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.failed_to_get_column_info_hrecord_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 0x10], 0x5481f0
mov dword [esp + 0xc], 0x548d81
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov dword [esp], 0x1bd4
call fcn.0042ca70
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x444]
xor ecx, ecx
mov edx, 0x54adb9
sub esp, 4
call fcn.00439000
mov dword [esp + 4], 0x1bd9
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov dword [ebp - 0x43c], eax
call fcn.0052ae70
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], str.failed_to_get_column_info_hrecord_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 0x10], str.Data
mov dword [esp + 0xc], 0x5481ff
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov dword [esp], 0x1bda
call fcn.0042ca70
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
sub esp, 4
mov dword [esp + 0x14], 0x104
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.storage.bin
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x44c], eax
call eax
lea eax, [ebp - 0x42c]
sub esp, 0x18
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1012
mov dword [esp], ebx
call sub.ole32.dll_StgCreateDocfile
sub esp, 0x10
test eax, eax
js 0x446a35
mov eax, dword [ebp - 0x42c]
lea edi, [ebp - 0x428]
lea esi, [ebp - 0x324]
mov edx, dword [eax]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x11
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 0x18
test eax, eax
js 0x446a13
mov eax, dword [ebp - 0x428]
mov edx, dword [eax]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 8
mov dword [esp + 4], str.stgdata
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 0x10
mov eax, dword [ebp - 0x428]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x42c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov dword [esp], 2
call sub.msi.dll_MsiCreateRecord
sub esp, 4
mov dword [ebp - 0x43c], eax
mov dword [esp + 8], str.stgname
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msi.dll_MsiRecordSetStringA
mov eax, dword [ebp - 0x43c]
sub esp, 0xc
mov dword [esp + 8], str.storage.bin
mov dword [esp + 4], 2
mov dword [esp], eax
call sub.msi.dll_MsiRecordSetStreamA
sub esp, 0xc
mov dword [ebp - 0x450], eax
mov dword [esp + 4], 0x1be3
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [ebp - 0x450]
mov dword [esp + 4], str.Failed_to_add_stream_data_to_the_hrecord:__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [sym.imp.kernel32.dll_DeleteFileA]
mov dword [esp], str.storage.bin
mov dword [ebp - 0x450], eax
call eax
mov eax, dword [ebp - 0x444]
lea edx, [ebp - 0x440]
sub esp, 4
mov dword [esp + 8], edx
mov dword [esp + 4], str.INSERT_INTO___Storages____Name____Data___VALUES_______
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseOpenViewA
sub esp, 0xc
mov dword [ebp - 0x454], eax
mov dword [esp + 4], 0x1be9
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [ebp - 0x454]
mov dword [esp + 4], str.Failed_to_open_database_hview:__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x440]
mov dword [esp], eax
call sub.msi.dll_MsiViewExecute
sub esp, 8
mov dword [ebp - 0x454], eax
mov dword [esp + 4], 0x1bec
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [ebp - 0x454]
mov dword [esp + 4], str.Failed_to_execute_hview:__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x440]
sub esp, 4
mov dword [esp], eax
call sub.msi.dll_MsiViewClose
mov eax, dword [ebp - 0x440]
sub esp, 4
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x444]
lea edx, [ebp - 0x440]
sub esp, 4
mov dword [esp + 8], edx
mov dword [esp + 4], str.SELECT__Name____Data__FROM___Storages_
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseOpenViewA
sub esp, 0xc
mov dword [ebp - 0x454], eax
mov dword [esp + 4], 0x1bf4
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [ebp - 0x454]
mov dword [esp + 4], str.Failed_to_open_database_hview:__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x440]
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msi.dll_MsiViewExecute
sub esp, 8
mov dword [ebp - 0x454], eax
mov dword [esp + 4], 0x1bf7
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [ebp - 0x454]
mov dword [esp + 4], str.Failed_to_execute_hview:__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x440]
lea ecx, [ebp - 0x43c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.msi.dll_MsiViewFetch
sub esp, 8
mov dword [ebp - 0x454], eax
mov dword [esp + 4], 0x1bfa
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [ebp - 0x454]
mov dword [esp + 4], str.Failed_to_fetch_hrecord:__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
lea ecx, [ebp - 0x42c]
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [ebp - 0x42c], 0x104
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov dword [ebp - 0x454], eax
mov dword [esp + 4], 0x1bfe
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [ebp - 0x454]
mov dword [esp + 4], str.Failed_to_get_string:__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], 0x1bff
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov edx, dword [sym.imp.kernel32.dll_lstrcmpA]
mov dword [esp], edi
mov dword [esp + 4], str.stgname
mov dword [ebp - 0x454], edx
call edx
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], edi
movzx eax, al
mov dword [esp + 4], str.Expected__stgname___got___s__n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, 0x65
lea ecx, [ebp - 0x42c]
mov dword [esp + 8], esi
mov word [ebp - 0x320], ax
mov eax, dword [ebp - 0x43c]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 2
mov dword [esp], eax
mov dword [ebp - 0x42c], 0x104
mov dword [ebp - 0x324], 0x6c707061
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov edi, eax
mov dword [esp + 4], 0x1c04
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
cmp edi, 0xd
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Expected_ERROR_INVALID_DATA__got__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1c05
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov edx, dword [ebp - 0x454]
mov dword [esp], esi
mov dword [esp + 4], 0x546b4e
call edx
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], esi
movzx eax, al
mov dword [esp + 4], 0x54af48
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1c06
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [ebp - 0x42c]
mov dword [esp + 4], 0x544d88
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x43c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x440]
lea ecx, [ebp - 0x43c]
sub esp, 4
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.msi.dll_MsiViewFetch
sub esp, 8
mov edi, eax
mov dword [esp + 4], 0x1c0b
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
cmp edi, 0x103
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], 0x543f9c
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x440]
mov dword [esp], eax
call sub.msi.dll_MsiViewClose
mov eax, dword [ebp - 0x440]
sub esp, 4
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x444]
sub esp, 4
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseCommit
mov eax, dword [ebp - 0x444]
sub esp, 4
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x44c]
sub esp, 4
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 0x104
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0x543a7e
mov dword [esp + 4], 0
mov dword [esp], 0
call eax
lea eax, [ebp - 0x438]
sub esp, 0x18
mov dword [esp], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x20
mov dword [esp + 4], 0
call sub.ole32.dll_StgOpenStorage
sub esp, 0x18
mov edi, eax
mov dword [esp + 4], 0x1c16
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Expected_S_OK__got__08x_n
lea edi, [ebp - 0x434]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1c17
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov edx, dword [ebp - 0x438]
xor eax, eax
mov dword [esp + 4], str.Expected_non_NULL_storage_n
test edx, edx
setne al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0x10], ebx
mov eax, dword [ebp - 0x44c]
mov dword [esp + 0x14], 0x104
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.stgname
mov dword [esp + 4], 0
mov dword [esp], 0
call eax
mov eax, dword [ebp - 0x438]
sub esp, 0x18
mov ecx, dword [eax]
mov dword [esp + 0x18], edi
mov dword [esp + 4], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [ecx + 0x18]
sub esp, 0x1c
mov edi, eax
mov dword [esp + 4], 0x1c1c
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Expected_S_OK__got__08x_n
lea edi, [ebp - 0x430]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1c1d
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov ecx, dword [ebp - 0x434]
xor eax, eax
mov dword [esp + 4], str.Expected_non_NULL_storage_n
test ecx, ecx
setne al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0x10], ebx
mov eax, dword [ebp - 0x44c]
mov dword [esp + 0x14], 0x104
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.storage.bin
mov dword [esp + 4], 0
mov dword [esp], 0
call eax
mov eax, dword [ebp - 0x434]
sub esp, 0x18
mov ecx, dword [eax]
mov dword [esp + 0x14], edi
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [ecx + 0x10]
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x1c21
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Expected_S_OK__got__08x_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1c22
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov ebx, dword [ebp - 0x430]
xor eax, eax
mov dword [esp + 4], str.Expected_non_NULL_stream_n
test ebx, ebx
lea ebx, [ebp - 0x42c]
setne al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x430]
mov ecx, dword [eax]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], 0x104
mov dword [esp], eax
call dword [ecx + 0xc]
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x1c25
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x54a238
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1c26
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [ebp - 0x42c]
mov dword [esp + 4], 0x5450c8
cmp eax, 8
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1c27
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov edx, dword [ebp - 0x454]
mov dword [esp], esi
mov dword [esp + 4], str.stgdata
call edx
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], esi
movzx eax, al
mov dword [esp + 4], str.Expected__stgdata___got___s__n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x430]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x434]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x438]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x450]
sub esp, 4
mov dword [esp], 0x543a7e
call eax
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret