Function at 0x4489f0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6ac
mov eax, dword [sym.imp.kernel32.dll_DeleteFileA]
mov dword [esp], 0x543a7e
mov esi, eax
mov dword [ebp - 0x694], eax
call eax
sub esp, 4
mov dword [esp], str.winetst_db.mst
call esi
mov dword [ebp - 0x518], 0
sub esp, 4
mov dword [esp], str.winetest_db.msi
call dword [sym.imp.kernel32.dll_DeleteFileW]
lea eax, [ebp - 0x518]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 3
mov dword [esp], str.winetest_db.msi
call sub.msi.dll_MsiOpenDatabaseW
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xbd9
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x543a1c
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x518]
test ebx, ebx
jne 0x448b18
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseCommit
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0xbde
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 - 0x518]
call fcn.0043c5e0
mov dword [esp + 4], 0xbe1
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x548c0c
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x518]
call fcn.00427b80
mov eax, dword [ebp - 0x518]
mov dword [esp + 4], 0xc28
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov dword [ebp - 0x664], eax
call fcn.0052ae70
mov eax, dword [ebp - 0x664]
mov dword [esp + 4], str.Failed_to_create_package_db_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x664]
xor edx, edx
mov ecx, str.CREATE_TABLE__MOO_____NOO__SHORT_NOT_NULL___OOO__CHAR_255__PRIMARY_KEY__NOO__
call fcn.00427af0
mov dword [esp + 4], 0xc2c
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.failed_to_add_table_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x664]
xor edx, edx
mov ecx, str.INSERT_INTO__MOO_____NOO____OOO____VALUES___1__a__
call fcn.00427af0
mov dword [esp + 4], 0xc30
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.failed_to_add_row_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x664]
xor edx, edx
mov ecx, str.INSERT_INTO__MOO_____NOO____OOO____VALUES___2__b__
call fcn.00427af0
mov dword [esp + 4], 0xc34
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.failed_to_add_row_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x664]
xor edx, edx
mov ecx, str.INSERT_INTO__MOO_____NOO____OOO____VALUES___3__c__
call fcn.00427af0
mov dword [esp + 4], 0xc38
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.failed_to_add_row_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x664]
xor edx, edx
mov ecx, str.CREATE_TABLE__BINARY_____ID__SHORT_NOT_NULL___BLOB__OBJECT_PRIMARY_KEY__ID__
call fcn.00427af0
mov dword [esp + 4], 0xc3c
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.failed_to_add_table_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], 2
call sub.msi.dll_MsiCreateRecord
sub esp, 4
mov dword [ebp - 0x65c], eax
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msi.dll_MsiRecordSetInteger
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc40
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_set_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov ecx, 6
mov edx, str.lamyon
mov eax, str.testdata.bin
call fcn.0043c970
mov eax, dword [ebp - 0x65c]
mov dword [esp + 8], str.testdata.bin
mov dword [esp + 4], 2
mov dword [esp], eax
call sub.msi.dll_MsiRecordSetStreamA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc44
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_set_stream_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov edx, dword [ebp - 0x65c]
mov eax, dword [ebp - 0x664]
mov ecx, str.INSERT_INTO__BINARY_____ID____BLOB____VALUES_________
call fcn.00427af0
mov dword [esp + 4], 0xc48
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.failed_to_add_row_with_blob_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x664]
sub esp, 4
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseCommit
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0xc4d
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 - 0x664]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x694]
sub esp, 4
mov dword [esp], str.testdata.bin
call eax
lea eax, [ebp - 0x518]
mov dword [ebp - 0x658], 0
mov dword [ebp - 0x644], 0xc1082
sub esp, 4
mov dword [ebp - 0x640], 0
mov dword [ebp - 0x63c], 0xc0
mov dword [ebp - 0x638], 0x46000000
mov dword [esp + 0x14], 0x20
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.winetst_db.mst
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x658]
sub esp, 0x18
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x518]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1012
mov dword [esp], eax
call sub.ole32.dll_StgCreateDocfile
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0xb89
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54bcef
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x658]
test eax, eax
je 0x44a3dc
mov edx, dword [eax]
lea ecx, [ebp - 0x644]
mov dword [esp], eax
mov esi, 0x54e550
mov dword [ebp - 0x674], ecx
mov dword [esp + 4], ecx
call dword [edx + 0x3c]
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xb8e
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x54bd09
sete al
mov ebx, 0x54e4e4
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x654]
mov edx, 0x54e6ac
mov dword [ebp - 0x678], eax
lea eax, [ebp - 0x650]
mov dword [ebp - 0x68c], eax
jmp 0x448fbb
mov edi, dword [ebx + 4]
mov eax, dword [ebp - 0x654]
mov edx, dword [ebp - 0x68c]
mov ecx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov edx, dword [ebx]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [ecx + 0x10]
sub esp, 0x10
test eax, eax
js 0x448f74
cmp edi, dword [ebp - 0x650]
je 0x448f9c
mov dword [esp + 4], 0xb9d
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov dword [esp + 4], 0x54bd43
mov dword [esp], 0
call fcn.0052b0e0
mov eax, dword [ebp - 0x654]
add ebx, 0xc
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
cmp esi, ebx
je 0x449040
mov edx, dword [ebx - 4]
mov eax, dword [ebp - 0x658]
mov edi, dword [ebp - 0x678]
mov ecx, 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], edx
mov dword [esp], eax
call dword [ecx + 0xc]
sub esp, 0x18
test eax, eax
jns 0x448f40
mov dword [esp + 4], 0xb96
add ebx, 0xc
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov dword [ebp - 0x66c], eax
call fcn.0052ae70
mov eax, dword [ebp - 0x66c]
mov dword [esp + 4], 0x54bd25
mov dword [esp], 0
mov dword [esp + 8], eax
call fcn.0052b0e0
cmp esi, ebx
jne 0x448fb8
lea esi, [esi]
mov eax, dword [ebp - 0x658]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
lea eax, [ebp - 0x664]
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov dword [esp], str.winetest_db.msi
call sub.msi.dll_MsiOpenDatabaseW
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc5d
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x543a1c
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x664]
mov dword [esp + 8], 0x100
mov dword [esp + 4], str.winetst_db.mst
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseApplyTransformA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc60
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.return_code__d__should_be_ERROR_SUCCESS_n
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x660]
mov dword [esp + 4], str.select__from___TransformView_
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x664]
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseOpenViewA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc64
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x544092
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x660]
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msi.dll_MsiViewExecute
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xc66
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x5440ae
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x65c]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x660]
mov dword [esp], eax
call sub.msi.dll_MsiViewGetColumnInfo
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc69
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
mov dword [esp + 0x1c], str.Current
mov dword [esp + 0x18], str.Data
mov dword [esp + 4], eax
mov dword [esp + 0x14], 0x54bdb6
mov dword [esp + 0x10], str.Column
mov dword [esp + 0xc], str.Table
mov dword [esp + 8], 5
mov dword [esp], 0xc6a
call fcn.0042ca70
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
lea eax, [ebp - 0x65c]
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x660]
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msi.dll_MsiViewGetColumnInfo
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc6e
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
mov dword [esp + 0x1c], 0x54bdc1
mov dword [esp + 0x18], 0x54bdc1
mov dword [esp + 4], eax
mov dword [esp + 0x14], 0x54bdc1
mov dword [esp + 0x10], 0x54bdc4
mov dword [esp + 0xc], 0x54bdc4
mov dword [esp + 8], 5
mov dword [esp], 0xc6f
call fcn.0042ca70
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
lea eax, [ebp - 0x318]
mov dword [ebp - 0x688], 0
shr eax, 0x10
sub esp, 4
mov dword [ebp - 0x684], eax
lea eax, [ebp - 0x418]
shr eax, 0x10
mov dword [ebp - 0x680], eax
lea eax, [ebp - 0x518]
shr eax, 0x10
mov dword [ebp - 0x67c], eax
lea esi, [esi]
lea eax, [ebp - 0x65c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x660]
mov dword [esp], eax
call sub.msi.dll_MsiViewFetch
sub esp, 8
test eax, eax
jne 0x449ad0
lea esi, [ebp - 0x518]
mov ebx, 1
lea eax, [ebp - 0x658]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x65c]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [ebp - 0x658], 0x100
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov edi, eax
mov dword [esp + 4], 0xc7a
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 8], ebx
sete al
mov dword [esp + 0xc], edi
add ebx, 1
add esi, 0x100
mov dword [esp + 4], str._d__MsiRecordGetStringA_failed__d_n
mov dword [esp], eax
call fcn.0052b0e0
cmp ebx, 6
jne 0x44933e
mov esi, dword [sym.imp.msvcrt.dll_strcmp]
mov edi, 0x54dfa4
mov eax, 0x54bae1
xor ebx, ebx
mov dword [esp + 4], eax
lea eax, [ebp - 0x518]
mov dword [esp], eax
call esi
test eax, eax
jne 0x449803
mov eax, dword [edi]
mov dword [esp + 4], eax
lea eax, [ebp - 0x418]
mov dword [esp], eax
call esi
test eax, eax
jne 0x449803
mov eax, dword [edi + 4]
mov dword [esp + 4], eax
lea eax, [ebp - 0x318]
mov dword [esp], eax
call esi
test eax, eax
jne 0x449803
mov dword [esp + 4], 0xc85
mov dword [esp], str..._wine_dlls_msi_tests_db.c
add dword [ebp - 0x688], 1
call fcn.0052ae70
lea eax, [ebx + ebx*4]
lea edx, [ebp - 0x218]
lea edi, [eax*4 + 0x54dfa0]
mov dword [esp], edx
mov eax, dword [edi + 0xc]
mov dword [esp + 4], eax
call esi
lea edx, [ebp - 0x218]
mov dword [esp + 8], ebx
test eax, eax
mov dword [esp + 0xc], edx
sete al
mov dword [esp + 4], str._d__data_3____s_n
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xc86
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [edi + 0x10]
lea edi, [ebp - 0x118]
mov dword [esp], edi
mov dword [esp + 4], eax
call esi
mov dword [esp + 0xc], edi
test eax, eax
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str._d__data_4____s_n
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [ebp - 0x670], 1
mov dword [esp + 4], 0xc89
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [ebp - 0x684]
test eax, eax
je 0x449a60
lea eax, [ebp - 0x318]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrA]
mov dword [ebp - 0x66c], 0x54bae5
sub esp, 8
test eax, eax
jne 0x4495be
cmp byte [ebp - 0x318], 0
je 0x44951d
nop
add eax, 1
cmp byte [ebp + eax - 0x318], 0
jne 0x449510
lea ecx, [ebp - 0x318]
lea edx, [ebp - 0x643]
mov byte [ebp - 0x644], 0x22
mov edi, ecx
lea ecx, [ebp - 0x521]
lea ebx, [eax - 1]
cmp edx, ecx
ja 0x44958d
nop
test eax, eax
jle 0x44958d
add edi, 1
movzx eax, byte [edi - 1]
cmp al, 0xd
je 0x4499d0
jg 0x4497e0
cmp al, 9
je 0x4499b3
cmp al, 0xa
jne 0x449973
mov eax, 0x6e5c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
lea esi, [esi]
nop
lea ecx, [ebp - 0x521]
lea ebx, [eax - 1]
cmp edx, ecx
jbe 0x449540
mov byte [edx], 0x22
lea eax, [edx + 1]
test ebx, ebx
jle 0x4495a7
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
mov eax, dword [ebp - 0x674]
mov dword [esp], eax
call fcn.0052c0c0
mov dword [ebp - 0x66c], eax
mov eax, dword [ebp - 0x680]
test eax, eax
je 0x449a30
lea eax, [ebp - 0x418]
mov dword [esp + 4], 0xffffffff
mov ebx, 0x54bae5
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrA]
sub esp, 8
test eax, eax
jne 0x4496a4
cmp byte [ebp - 0x418], 0
je 0x44960d
lea esi, [esi]
add eax, 1
cmp byte [ebp + eax - 0x418], 0
jne 0x449600
lea ecx, [ebp - 0x418]
mov byte [ebp - 0x644], 0x22
lea edx, [ebp - 0x643]
mov edi, ecx
lea ebx, [eax - 1]
test eax, eax
jle 0x449677
lea esi, [esi]
lea eax, [ebp - 0x521]
cmp edx, eax
ja 0x449677
add edi, 1
movzx eax, byte [edi - 1]
cmp al, 0xd
je 0x449943
jg 0x449820
cmp al, 9
je 0x449930
cmp al, 0xa
jne 0x4498f0
mov eax, 0x6e5c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
lea esi, [esi]
lea ebx, [eax - 1]
test eax, eax
jg 0x449630
mov byte [edx], 0x22
lea eax, [edx + 1]
test ebx, ebx
jle 0x449691
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
mov eax, dword [ebp - 0x674]
mov dword [esp], eax
call fcn.0052c0c0
mov ebx, eax
mov eax, dword [ebp - 0x67c]
test eax, eax
je 0x449a00
lea eax, [ebp - 0x518]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrA]
mov edi, eax
sub esp, 8
mov eax, 0x54bae5
test edi, edi
jne 0x44979e
cmp byte [ebp - 0x518], 0
je 0x4496f1
add edi, 1
cmp byte [ebp + edi - 0x518], 0
jne 0x4496e4
lea edx, [ebp - 0x643]
mov byte [ebp - 0x644], 0x22
lea esi, [edi - 1]
lea eax, [ebp - 0x521]
lea ecx, [ebp - 0x518]
mov dword [ebp - 0x690], ebx
cmp edx, eax
ja 0x44976d
lea esi, [esi]
nop
test edi, edi
jle 0x44976d
add ecx, 1
movzx ebx, byte [ecx - 1]
cmp bl, 0xd
je 0x4498c0
jg 0x449843
cmp bl, 9
je 0x4498a3
cmp bl, 0xa
jne 0x449864
mov eax, 0x6e5c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
lea esi, [esi]
lea eax, [ebp - 0x521]
lea esi, [edi - 1]
cmp edx, eax
jbe 0x449720
mov ebx, dword [ebp - 0x690]
mov byte [edx], 0x22
lea eax, [edx + 1]
test esi, esi
jle 0x44978d
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
mov eax, dword [ebp - 0x674]
mov dword [esp], eax
call fcn.0052c0c0
mov ecx, dword [ebp - 0x66c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x670]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp], eax
mov dword [esp + 4], str.invalid_row:__s___s___s_n
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
sub esp, 4
jmp 0x449310
cmp al, 0x22
je 0x4499e3
cmp al, 0x5c
jne 0x449973
mov eax, 0x5c5c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x449580
add ebx, 1
add edi, 0x14
cmp ebx, 0x13
je 0x449ac0
mov eax, dword [edi - 4]
jmp 0x4493c0
cmp al, 0x22
je 0x449960
cmp al, 0x5c
jne 0x4498f0
mov eax, 0x5c5c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x449670
cmp bl, 0x22
je 0x4498d3
cmp bl, 0x5c
jne 0x449864
mov eax, 0x5c5c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x449760
lea eax, [ebx - 0x20]
cmp al, 0x5e
jbe 0x449a90
mov eax, ebx
mov edi, 0x785c
add edx, 4
shr al, 4
mov word [edx - 4], di
mov edi, ebx
movzx eax, al
and edi, 0xf
movzx eax, byte [eax + str.0123456789abcdefOOO]
mov byte [edx - 2], al
movzx eax, byte [edi + str.0123456789abcdefOOO]
mov edi, esi
mov byte [edx - 1], al
jmp 0x449760
mov eax, 0x745c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x449760
mov eax, 0x725c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x449760
mov eax, 0x225c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x449760
lea esi, [eax - 0x20]
mov ecx, esi
cmp cl, 0x5e
jbe 0x449aa0
mov ecx, eax
mov esi, 0x785c
and eax, 0xf
add edx, 4
shr cl, 4
mov word [edx - 4], si
movzx eax, byte [eax + str.0123456789abcdefOOO]
movzx esi, cl
movzx ecx, byte [esi + str.0123456789abcdefOOO]
mov byte [edx - 1], al
mov eax, ebx
mov byte [edx - 2], cl
jmp 0x449670
mov eax, 0x745c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x449670
mov eax, 0x725c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x449670
mov eax, 0x225c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x449670
lea esi, [eax - 0x20]
mov ecx, esi
cmp cl, 0x5e
jbe 0x449ab0
mov ecx, eax
mov esi, 0x785c
and eax, 0xf
add edx, 4
shr cl, 4
mov word [edx - 4], si
movzx eax, byte [eax + str.0123456789abcdefOOO]
movzx esi, cl
movzx ecx, byte [esi + str.0123456789abcdefOOO]
mov byte [edx - 1], al
mov eax, ebx
mov byte [edx - 2], cl
jmp 0x449580
mov eax, 0x745c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x449580
mov eax, 0x725c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x449580
mov eax, 0x225c
add edx, 2
mov word [edx - 2], ax
mov eax, ebx
jmp 0x449580
lea eax, [ebp - 0x518]
mov dword [esp], 0x54badb
mov dword [ebp - 0x690], eax
movzx eax, word [ebp - 0x690]
mov dword [esp + 4], eax
call fcn.004489a0
jmp 0x44979e
lea eax, [ebp - 0x418]
mov dword [esp], 0x54badb
mov dword [ebp - 0x690], eax
movzx eax, word [ebp - 0x690]
mov dword [esp + 4], eax
call fcn.004489a0
mov ebx, eax
jmp 0x4496a4
lea eax, [ebp - 0x318]
mov dword [esp], 0x54badb
mov dword [ebp - 0x66c], eax
movzx eax, word [ebp - 0x66c]
mov dword [esp + 4], eax
call fcn.004489a0
mov dword [ebp - 0x66c], eax
jmp 0x4495be
mov byte [edx], bl
mov edi, esi
add edx, 1
jmp 0x449760
mov byte [edx], al
add edx, 1
mov eax, ebx
jmp 0x449670
mov byte [edx], al
add edx, 1
mov eax, ebx
jmp 0x449580
mov dword [ebp - 0x670], 0
jmp 0x4494b7
mov dword [esp + 4], 0xc8d
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov eax, dword [ebp - 0x688]
mov dword [esp + 4], str.matched___d_n
cmp eax, 0x13
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x660]
mov dword [esp], eax
call sub.msi.dll_MsiViewClose
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0xc90
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x5440c5
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x660]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0xc92
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], 0x5440da
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x664]
xor edx, edx
mov ecx, str.ALTER_TABLE___TransformView__FREE
call fcn.00427af0
mov dword [esp + 4], 0xc96
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.cannot_free__TransformView_table:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x664]
xor edx, edx
mov ecx, str.ALTER_TABLE___TransformView__FREE
call fcn.00427af0
mov dword [esp + 4], 0xc98
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
cmp ebx, 0x64f
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str._TransformView_table_still_exist:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x664]
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetst_db.mst
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseApplyTransformA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc9b
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.return_code__d__should_be_ERROR_SUCCESS_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x664]
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseCommit
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0xc9e
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 - 0x664]
lea ecx, [ebp - 0x65c]
mov edx, str.select__BAR___CAR__from__AAR__where__BAR___1_AND__CAR___vw
mov dword [ebp - 0x65c], 0
call fcn.00427c20
mov dword [esp + 4], 0xca4
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.select_query_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x664]
lea ecx, [ebp - 0x65c]
mov edx, str.select__BAR___CAR__from__AAR__where__BAR___2_AND__CAR___bmw
mov dword [ebp - 0x65c], 0
sub esp, 4
call fcn.00427c20
mov dword [esp + 4], 0xcaa
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.select_query_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x664]
lea ecx, [ebp - 0x65c]
mov edx, str.select__NOO___OOO__from__MOO__where__NOO___1_AND__OOO___c
mov dword [ebp - 0x65c], 0
sub esp, 4
call fcn.00427c20
mov dword [esp + 4], 0xcb1
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.select_query_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x664]
lea ecx, [ebp - 0x65c]
mov edx, str.select__NOO___OOO__from__MOO__where__NOO___2_AND__OOO___b
mov dword [ebp - 0x65c], 0
sub esp, 4
call fcn.00427c20
mov dword [esp + 4], 0xcb8
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.select_query_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x664]
lea ecx, [ebp - 0x65c]
mov edx, str.select__from__MOO__where__NOO___3
mov dword [ebp - 0x65c], 0
sub esp, 4
call fcn.00427c20
mov dword [esp + 4], 0xcbf
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
cmp ebx, 0x103
mov dword [esp + 4], str.select_query_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
test eax, eax
jne 0x44a3bc
mov eax, dword [ebp - 0x664]
lea ecx, [ebp - 0x65c]
mov edx, str.select__BLOB__from__BINARY__where__ID___1
mov dword [ebp - 0x65c], 0
call fcn.00427c20
mov dword [esp + 4], 0xcc6
mov dword [esp], str..._wine_dlls_msi_tests_db.c
mov ebx, eax
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.select_query_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x658]
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x674]
mov dword [ebp - 0x658], 0x104
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0xccb
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.read_stream_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xccc
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
cmp dword [ebp - 0x644], 0x6e65616e
je 0x44a395
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.stream_data_was_wrong_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xccd
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x658], 9
mov dword [esp + 4], str.stream_data_was_wrong_size_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
test eax, eax
jne 0x44a3cc
lea eax, [ebp - 0x660]
mov dword [esp + 4], str.select__from__MOO_
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x664]
mov dword [ebp - 0x65c], 0
mov dword [esp], eax
call sub.msi.dll_MsiDatabaseOpenViewA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xcd4
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.open_view_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x660]
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msi.dll_MsiViewExecute
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xcd7
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.view_execute_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x65c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x660]
mov dword [esp], eax
call sub.msi.dll_MsiViewFetch
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xcda
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.view_fetch_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
mov dword [esp + 0x18], 0x546cbb
mov dword [esp + 0x14], 0x545bc5
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0x549561
mov dword [esp + 0xc], 0x545391
mov dword [esp + 8], 4
mov dword [esp], 0xcdb
call fcn.0042ca70
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
lea eax, [ebp - 0x65c]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x660]
mov dword [esp], eax
call sub.msi.dll_MsiViewFetch
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xcdf
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.view_fetch_failed_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
mov dword [esp + 0x18], 0x545bc5
mov dword [esp + 0x14], 0x545bc5
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0x548755
mov dword [esp + 0xc], 0x545c0c
mov dword [esp + 8], 4
mov dword [esp], 0xce0
call fcn.0042ca70
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
lea eax, [ebp - 0x65c]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x660]
mov dword [esp], eax
call sub.msi.dll_MsiViewFetch
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xce4
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 0x103
mov dword [esp + 4], str.view_fetch_succeeded_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x65c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov eax, dword [ebp - 0x660]
sub esp, 4
mov dword [esp], eax
call sub.msi.dll_MsiViewClose
mov eax, dword [ebp - 0x660]
sub esp, 4
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov esi, dword [ebp - 0x68c]
mov ebx, dword [ebp - 0x664]
sub esp, 4
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x54c0c4
mov dword [esp], esi
call fcn.00438ea0
mov eax, dword [ebp - 0x678]
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msi.dll_MsiOpenPackageA
sub esp, 8
mov edi, eax
test eax, eax
je 0x44a370
cmp edi, 0x659
jne 0x44a28e
mov dword [esp + 4], 0xcee
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov dword [esp], 0x54c0c8
call fcn.0052b1d0
mov eax, dword [ebp - 0x664]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
mov esi, dword [ebp - 0x694]
sub esp, 4
mov eax, esi
mov dword [esp], 0x543a7e
call eax
mov eax, esi
sub esp, 4
mov dword [esp], str.winetst_db.mst
call eax
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor esi, esi
xor ebx, ebx
mov dword [esp + 4], 0xcf1
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov dword [esp + 8], edi
mov dword [esp], esi
mov dword [esp + 4], 0x54aa74
call fcn.0052b0e0
mov edi, dword [ebp - 0x674]
lea eax, [ebp - 0x658]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0x54c0ec
mov dword [ebp - 0x658], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0xcf5
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x543d04
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xcf6
mov dword [esp], str..._wine_dlls_msi_tests_db.c
call fcn.0052ae70
mov dword [esp + 4], 0x54c0f1
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_lstrcmpA]
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], edi
movzx eax, al
mov dword [esp + 4], 0x54c0f5
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
call sub.msi.dll_MsiCloseHandle
sub esp, 4
jmp 0x44a253
mov dword [esp], ebx
call sub.msi.dll_MsiCloseHandle
sub esp, 4
mov edi, eax
test eax, eax
jne 0x44a405
mov ebx, dword [ebp - 0x654]
mov esi, 1
jmp 0x44a292
cmp dword [ebp - 0x640], 0x6f796d67
jne 0x449f49
mov eax, dword [ebp - 0x674]
cmp byte [eax + 8], 0x6e
jne 0x449f49
xor eax, eax
jmp 0x449f4e
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
sub esp, 4
jmp 0x449e74
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
sub esp, 4
jmp 0x449f9f
lea eax, [ebp - 0x644]
mov dword [ebp - 0x674], eax
lea eax, [ebp - 0x654]
mov dword [ebp - 0x678], eax
lea eax, [ebp - 0x650]
mov dword [ebp - 0x68c], eax
jmp 0x449051
mov eax, dword [ebp - 0x654]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
sub esp, 4
jmp 0x44a22b