Function at 0x402ab0
Capabilities:
Terminate process

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
xor eax, eax
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x260]
push ebx
push ecx
sub esp, 0x298
mov esi, dword [ecx]
mov ebx, dword [ecx + 4]
mov ecx, 0xa
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x238]
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x238], eax
lea eax, [ebp - 0x230]
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x230], eax
lea eax, [ebp - 0x228]
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x228], eax
lea eax, [ebp - 0x220]
mov dword [ebp - 0x27c], esi
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x220], eax
cmp esi, 1
jle 0x403121
mov esi, 1
lea esi, [esi]
nop
mov edx, dword [ebx + esi*4]
lea edi, [esi*4]
movzx ecx, word [edx]
test cx, cx
je 0x402ba0
mov eax, edx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x402b58
sub eax, edx
cmp eax, 4
jne 0x402ba0
and ecx, 0xfffffffd
cmp cx, 0x2d
jne 0x402ba0
movzx eax, word [edx + 2]
sub eax, 0x3f
cmp ax, 0x39
ja case.0x402b85.1
movzx eax, ax
jmp dword [eax*4 + 0x405898]
lea eax, [esi + 1]
cmp dword [ebp - 0x27c], eax
jg 0x4030d0
lea esi, [esi]
nop
cmp dword [ebp - 0x27c], esi
jle 0x402bf5
lea esi, [esi]
nop
mov edi, dword [ebx + esi*4]
mov dword [esp + 4], 0xc
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_calloc]
test eax, eax
je 0x403a40
mov edx, dword [ebp - 0x21c]
lea ecx, [ebp - 0x220]
mov dword [eax + 8], edi
inc esi
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x21c], eax
cmp dword [ebp - 0x27c], esi
jne 0x402bb0
mov eax, dword [ebp - 0x260]
test eax, eax
je 0x403121
mov ecx, dword [ebp - 0x25c]
test ecx, ecx
je 0x40301a
mov edx, dword [ebp - 0x248]
test edx, edx
jne 0x402ccc
mov edx, dword [ebp - 0x244]
or edx, dword [ebp - 0x240]
jne 0x402e83
mov edi, dword [ebp - 0x254]
mov edx, 1
test edi, edi
jne 0x402ce3
mov ecx, dword [ebp - 0x24c]
or ecx, dword [ebp - 0x250]
jne 0x402ce3
test byte [0x404010], 2
jne 0x403a10
mov dword [esp], str.Usage:_msidb__OPTION_..._OPTION_...__TABLE_..._TABLE__nOptions:_n____________________Show_this_usage_message_and_exit._n___a_file.cab_______Add_stream_cabinet_file_to__Streams_table._n___c________________Create_database_file__instead_of_opening_existing_file_._n___d_package.msi____Path_to_the_database_file._n___e________________Export_tables_from_database._n___f_folder_________Folder_in_which_to_open_save_the_tables._n___i________________Import_tables_into_database._n___k_file.cab_______Kill__remove__stream_cabinet_file_from__Streams_table._n___s________________Export_with_short_filenames__eight_character_max_._n___x_file.cab_______Extract_stream_cabinet_file_from__Streams_table._n
call sym._wine_dbg_printf.constprop.0
nop
mov eax, dword [ebp - 0x258]
test eax, eax
je 0x403165
mov dword [esp], eax
mov esi, 1
call sym._MsiCloseHandle_4
sub esp, 4
test eax, eax
je 0x402d90
test byte [0x404010], 4
je 0x402d90
mov dword [esp + 0xc], str.Failed_to_close_database_handle._n
mov dword [esp + 8], str.close_database
mov dword [esp + 4], 0x404010
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
jmp 0x402d90
lea ebx, [ebp - 0x220]
cmp dword [ebp - 0x220], ebx
je 0x403070
mov edx, 3
lea ecx, [ebp - 0x258]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp], eax
call sym._MsiOpenDatabaseW_12
sub esp, 0xc
mov ebx, eax
test eax, eax
jne 0x40316f
mov esi, dword [ebp - 0x254]
test esi, esi
jne 0x40321a
mov ebx, dword [ebp - 0x240]
test ebx, ebx
jne 0x4033b5
mov ecx, dword [ebp - 0x250]
test ecx, ecx
jne 0x4034b8
mov eax, dword [ebp - 0x244]
test eax, eax
jne 0x4034f7
mov eax, dword [ebp - 0x24c]
test eax, eax
jne 0x403638
mov eax, dword [ebp - 0x258]
test eax, eax
je 0x403213
mov dword [esp], eax
call sym._MsiDatabaseCommit_4
sub esp, 4
test eax, eax
jne 0x403206
mov eax, dword [ebp - 0x258]
xor esi, esi
mov dword [esp], eax
call sym._MsiCloseHandle_4
sub esp, 4
test eax, eax
jne 0x402c96
lea esi, [esi]
nop
mov eax, dword [ebp - 0x238]
lea ecx, [ebp - 0x238]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, ecx
je 0x402dcd
lea esi, [esi]
nop
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov ecx, dword [eax]
mov dword [edx], ecx
mov dword [esp], eax
call ebx
mov eax, edi
lea ecx, [ebp - 0x238]
mov edi, dword [edi]
cmp eax, ecx
jne 0x402db0
mov eax, dword [ebp - 0x230]
lea ecx, [ebp - 0x230]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, ecx
je 0x402e05
lea esi, [esi]
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov ecx, dword [eax]
mov dword [edx], ecx
mov dword [esp], eax
call ebx
mov eax, edi
lea ecx, [ebp - 0x230]
mov edi, dword [edi]
cmp eax, ecx
jne 0x402de8
mov eax, dword [ebp - 0x228]
lea ecx, [ebp - 0x228]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, ecx
je 0x402e3d
lea esi, [esi]
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov ecx, dword [eax]
mov dword [edx], ecx
mov dword [esp], eax
call ebx
mov eax, edi
lea ecx, [ebp - 0x228]
mov edi, dword [edi]
cmp eax, ecx
jne 0x402e20
mov eax, dword [ebp - 0x220]
lea ecx, [ebp - 0x220]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, ecx
je 0x402e75
lea esi, [esi]
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov ecx, dword [eax]
mov dword [edx], ecx
mov dword [esp], eax
call ebx
mov eax, edi
lea edx, [ebp - 0x220]
mov edi, dword [edi]
cmp eax, edx
jne 0x402e58
lea esp, [ebp - 0x10]
mov eax, esi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
lea ebx, [ebp - 0x220]
cmp dword [ebp - 0x220], ebx
je 0x4036e0
mov edx, 1
jmp 0x402ce3
mov dword [ebp - 0x244], 1
mov eax, 1
nop
add esi, eax
cmp dword [ebp - 0x27c], esi
jg 0x402b40
jmp 0x402bf5
lea eax, [esi + 1]
cmp dword [ebp - 0x27c], eax
jle 0x402ba0
mov eax, dword [ebx + edi + 4]
mov dword [ebp - 0x25c], eax
mov eax, 2
jmp 0x402eb0
mov dword [ebp - 0x240], 1
mov eax, 1
jmp 0x402eb0
lea eax, [esi + 1]
cmp dword [ebp - 0x27c], eax
jle 0x402ba0
mov eax, dword [ebx + edi + 4]
mov dword [ebp - 0x260], eax
mov eax, 2
jmp 0x402eb0
lea eax, [esi + 1]
cmp dword [ebp - 0x27c], eax
jle 0x402ba0
mov dword [ebp - 0x250], 1
mov edi, dword [ebx + edi + 4]
mov dword [esp + 4], 0xc
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_calloc]
test eax, eax
je 0x403a39
mov edx, dword [ebp - 0x22c]
mov dword [eax + 8], edi
lea edi, [ebp - 0x230]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x22c], eax
mov eax, 2
jmp 0x402eb0
mov dword [ebp - 0x23c], 1
mov eax, 1
jmp 0x402eb0
lea eax, [esi + 1]
cmp dword [ebp - 0x27c], eax
jle 0x402ba0
mov dword [ebp - 0x24c], 1
mov edi, dword [ebx + edi + 4]
mov dword [esp + 4], 0xc
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_calloc]
test eax, eax
je 0x403a39
mov edx, dword [ebp - 0x224]
mov dword [eax + 8], edi
lea edi, [ebp - 0x228]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x224], eax
mov eax, 2
jmp 0x402eb0
mov dword [ebp - 0x248], 1
mov eax, 1
jmp 0x402eb0
mov dword [esp], str.Usage:_msidb__OPTION_..._OPTION_...__TABLE_..._TABLE__nOptions:_n____________________Show_this_usage_message_and_exit._n___a_file.cab_______Add_stream_cabinet_file_to__Streams_table._n___c________________Create_database_file__instead_of_opening_existing_file_._n___d_package.msi____Path_to_the_database_file._n___e________________Export_tables_from_database._n___f_folder_________Folder_in_which_to_open_save_the_tables._n___i________________Import_tables_into_database._n___k_file.cab_______Kill__remove__stream_cabinet_file_from__Streams_table._n___s________________Export_with_short_filenames__eight_character_max_._n___x_file.cab_______Extract_stream_cabinet_file_from__Streams_table._n
call sym._wine_dbg_printf.constprop.0
mov dword [esp], 0
call dword [sym.imp.ucrtbase.dll_exit]
mov edx, dword [ebp - 0x254]
or edx, dword [ebp - 0x24c]
or edx, dword [ebp - 0x250]
jne 0x402c11
test byte [0x404010], 2
je 0x402c63
mov dword [esp + 0xc], str.No_table_folder_specified___f_option_._n
mov dword [esp + 8], str.valid_state
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402c63
mov ecx, dword [ebp - 0x254]
test ecx, ecx
jne 0x402cde
mov edx, dword [ebp - 0x24c]
or edx, dword [ebp - 0x250]
jne 0x402cde
test byte [0x404010], 2
je 0x402c70
mov dword [esp + 0xc], str.No_tables_specified._n
mov dword [esp + 8], str.valid_state
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402c70
mov dword [ebp - 0x254], 1
mov edi, dword [ebx + edi + 4]
mov dword [esp + 4], 0xc
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_calloc]
test eax, eax
je 0x403a39
mov edx, dword [ebp - 0x234]
mov dword [eax + 8], edi
lea edi, [ebp - 0x238]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x234], eax
mov eax, 2
jmp 0x402eb0
test byte [0x404010], 1
je 0x402c70
mov dword [esp + 0xc], str.GUI_operation_is_not_currently_supported._n
mov esi, 1
mov dword [esp + 8], str.valid_state
mov dword [esp + 4], 0x404010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
mov eax, dword [ebp - 0x258]
test eax, eax
jne 0x402d75
mov esi, 1
jmp 0x402d90
test byte [0x404010], 2
je 0x402c70
mov eax, dword [ebp - 0x260]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_open_database__s__error__d_n
mov dword [esp + 8], str.open_database
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
test byte [0x404010], 2
je 0x402c70
mov eax, dword [ebp - 0x260]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Failed_to_open_database__s._n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
mov eax, dword [ebp - 0x258]
test eax, eax
jne 0x402c7e
jmp 0x403165
test byte [0x404010], 2
jne 0x403753
xor esi, esi
jmp 0x402d90
mov ebx, dword [ebp - 0x238]
lea eax, [ebp - 0x238]
cmp ebx, eax
je 0x402d14
lea edi, [ebp - 0x218]
mov dword [ebp - 0x27c], edi
lea esi, [esi]
mov eax, dword [ebp - 0x27c]
mov esi, dword [ebx + 8]
mov dword [esp + 4], str.INSERT_INTO__Streams__Name__Data__VALUES_______
mov dword [ebp - 0x218], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x258]
mov dword [esp], eax
call sym._MsiDatabaseOpenViewW_12
sub esp, 0xc
test eax, eax
je 0x40329f
test byte [0x404010], 2
jne 0x403339
mov eax, dword [ebp - 0x218]
test eax, eax
je 0x402c70
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
jmp 0x402c70
mov dword [esp], 2
call sym._MsiCreateRecord_4
sub esp, 4
mov edi, eax
test eax, eax
jne 0x4032e3
test byte [0x404010], 2
je 0x403281
mov dword [esp + 0xc], str.Failed_to_create_MSI_record._n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403281
mov dword [esp + 4], 0x2f
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
test eax, eax
je 0x403618
add eax, 2
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], edi
call sym._MsiRecordSetStringW_12
sub esp, 0xc
test eax, eax
je 0x403362
mov ebx, edi
test byte [0x404010], 2
jne 0x4038b0
mov dword [esp], ebx
call sym._MsiCloseHandle_4
sub esp, 4
jmp 0x403281
mov dword [esp + 0xc], str.Failed_to_open__Streams_table._n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403281
mov dword [esp + 8], esi
mov dword [esp + 4], 2
mov dword [esp], edi
call sym._MsiRecordSetStreamW_12
sub esp, 0xc
test eax, eax
je 0x403708
mov ebx, edi
test byte [0x404010], 2
je 0x403329
mov dword [esp + 0xc], str.Failed_to_add_stream_to_MSI_record._n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403329
mov edi, dword [ebp - 0x220]
lea eax, [ebp - 0x220]
cmp edi, eax
je 0x402d22
mov dword [esp + 4], 0x405248
mov eax, dword [edi + 8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_lstrcmpW]
sub esp, 8
test eax, eax
jne 0x403488
lea eax, [ebp - 0x26c]
mov dword [esp + 4], str.SELECT_Name_FROM__Tables
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x26c], 0
mov dword [esp], eax
call sym._MsiDatabaseOpenViewW_12
sub esp, 0xc
test eax, eax
je 0x40350f
test byte [0x404010], 2
jne 0x40377e
mov eax, dword [ebp - 0x26c]
test eax, eax
je 0x402c70
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
test eax, eax
je 0x402c70
test byte [0x404010], 2
je 0x402c70
mov dword [esp + 0xc], str.Failed_to_close__Streams_table._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402c70
mov edx, dword [edi + 8]
lea eax, [ebp - 0x260]
call sym._export_table
test eax, eax
je 0x402c70
mov edi, dword [edi]
lea eax, [ebp - 0x220]
cmp edi, eax
jne 0x4033c9
jmp 0x402d22
mov ebx, dword [ebp - 0x230]
lea eax, [ebp - 0x230]
cmp ebx, eax
jne 0x4034e0
jmp 0x402d30
mov ebx, dword [ebx]
lea eax, [ebp - 0x230]
cmp ebx, eax
je 0x402d30
mov edx, dword [ebx + 8]
lea eax, [ebp - 0x260]
call sym._extract_stream
test eax, eax
jne 0x4034d0
jmp 0x402c70
lea eax, [ebp - 0x260]
call sym._import_tables
test eax, eax
jne 0x402d3e
jmp 0x402c70
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._MsiViewExecute_8
sub esp, 8
test eax, eax
jne 0x4037a7
lea esi, [ebp - 0x268]
lea ebx, [ebp - 0x218]
jmp 0x4035ad
test eax, eax
jne 0x403957
lea eax, [ebp - 0x264]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x268]
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [ebp - 0x264], 0x100
call sym._MsiRecordGetStringW_16
sub esp, 0x10
test eax, eax
jne 0x4039c3
mov edx, ebx
lea eax, [ebp - 0x260]
call sym._export_table
test eax, eax
je 0x40342a
mov eax, dword [ebp - 0x268]
mov dword [esp], eax
call sym._MsiCloseHandle_4
sub esp, 4
test eax, eax
jne 0x40398d
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], esi
mov dword [ebp - 0x268], 0
mov dword [esp], eax
call sym._MsiViewFetch_8
sub esp, 8
cmp eax, 0x103
jne 0x40353e
mov edx, str._SummaryInformation
lea eax, [ebp - 0x260]
call sym._export_table
test eax, eax
je 0x40342a
mov eax, dword [ebp - 0x26c]
test eax, eax
je 0x40349e
mov dword [esp], eax
call sym._MsiViewClose_4
push edx
test eax, eax
je 0x40349e
jmp 0x40344b
mov dword [esp + 4], 0x5c
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
mov edx, eax
lea eax, [eax + 2]
test edx, edx
cmove eax, esi
jmp 0x4032ff
mov ebx, dword [ebp - 0x228]
lea eax, [ebp - 0x228]
cmp ebx, eax
je 0x402d4c
lea edi, [ebp - 0x218]
mov eax, dword [ebp - 0x258]
mov esi, dword [ebx + 8]
mov dword [esp + 8], edi
mov dword [esp + 4], str.DELETE_FROM__Streams_WHERE_Name___
mov dword [esp], eax
mov dword [ebp - 0x218], 0
call sym._MsiDatabaseOpenViewW_12
sub esp, 0xc
test eax, eax
je 0x4037e0
test byte [0x404010], 2
je 0x403281
mov dword [esp + 0xc], str.Failed_to_open__Streams_table._n
mov dword [esp + 8], str.kill_stream
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403281
mov dword [esp], str.Usage:_msidb__OPTION_..._OPTION_...__TABLE_..._TABLE__nOptions:_n____________________Show_this_usage_message_and_exit._n___a_file.cab_______Add_stream_cabinet_file_to__Streams_table._n___c________________Create_database_file__instead_of_opening_existing_file_._n___d_package.msi____Path_to_the_database_file._n___e________________Export_tables_from_database._n___f_folder_________Folder_in_which_to_open_save_the_tables._n___i________________Import_tables_into_database._n___k_file.cab_______Kill__remove__stream_cabinet_file_from__Streams_table._n___s________________Export_with_short_filenames__eight_character_max_._n___x_file.cab_______Extract_stream_cabinet_file_from__Streams_table._n
call sym._wine_dbg_printf.constprop.0
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_exit]
lea esi, [esi]
mov edx, dword [ebp - 0x254]
test edx, edx
jne 0x402e95
mov edx, dword [ebp - 0x24c]
or edx, dword [ebp - 0x250]
je 0x403090
jmp 0x402e95
mov eax, dword [ebp - 0x218]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._MsiViewExecute_8
sub esp, 8
test eax, eax
jne 0x40391f
mov dword [esp], edi
call sym._MsiCloseHandle_4
mov eax, dword [ebp - 0x218]
sub esp, 4
test eax, eax
jne 0x4039f9
mov ebx, dword [ebx]
lea eax, [ebp - 0x238]
cmp ebx, eax
jne 0x403240
jmp 0x402d14
mov dword [esp + 0xc], str.Failed_to_commit_changes_to_database._n
xor esi, esi
mov dword [esp + 8], str.close_database
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402d90
mov dword [esp + 0xc], str.Failed_to_open__Tables_table._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x40342a
test byte [0x404010], 2
je 0x40342a
mov dword [esp + 0xc], str.Failed_to_query_list_from__Tables_table._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x40342a
mov dword [esp], 1
call sym._MsiCreateRecord_4
sub esp, 4
test eax, eax
jne 0x403815
test byte [0x404010], 2
je 0x403281
mov dword [esp + 0xc], str.Failed_to_create_MSI_record._n
mov dword [esp + 8], str.kill_stream
jmp 0x4032cd
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [ebp - 0x27c], eax
call sym._MsiRecordSetStringW_12
mov edx, dword [ebp - 0x27c]
sub esp, 0xc
test eax, eax
je 0x403859
test byte [0x404010], 2
jne 0x4038d9
mov dword [esp], edx
call sym._MsiCloseHandle_4
sub esp, 4
jmp 0x403281
mov eax, dword [ebp - 0x218]
mov dword [esp + 4], edx
mov dword [ebp - 0x27c], edx
mov dword [esp], eax
call sym._MsiViewExecute_8
mov edx, dword [ebp - 0x27c]
sub esp, 8
test eax, eax
jne 0x403908
mov dword [esp], edx
call sym._MsiCloseHandle_4
mov eax, dword [ebp - 0x218]
sub esp, 4
test eax, eax
jne 0x403a56
mov ebx, dword [ebx]
lea eax, [ebp - 0x228]
cmp ebx, eax
jne 0x403652
jmp 0x402d4c
mov dword [esp + 0xc], str.Failed_to_add_stream_filename_to_MSI_record._n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403329
mov dword [esp + 0xc], str.Failed_to_add_stream_filename_to_MSI_record._n
mov dword [esp + 8], str.kill_stream
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
mov edx, dword [ebp - 0x27c]
jmp 0x403849
test byte [0x404010], 2
je 0x403849
mov dword [esp + 0xc], str.Failed_to_delete_stream_from__Streams_table._n
jmp 0x4038e1
mov ebx, edi
test byte [0x404010], 2
je 0x403329
mov dword [esp + 0xc], str.Failed_to_add_stream_to__Streams_table._n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403329
test byte [0x404010], 2
je 0x40342a
mov dword [esp + 0xc], str.Failed_to_query_row_from__Tables_table._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x40342a
test byte [0x404010], 2
je 0x40342a
mov dword [esp + 0xc], str.Failed_to_close_record_handle._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x40342a
test byte [0x404010], 2
je 0x40342a
mov dword [esp + 0xc], str.Failed_to_retrieve_name_string._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x40342a
mov dword [esp], eax
call sym._MsiViewClose_4
push esi
jmp 0x40373e
mov dword [esp + 0xc], str.No_mode_flag_specified___a___c___e___i___k___x_._n
mov dword [esp + 8], str.valid_state
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402c63
call sym._list_append.part.0
nop
test byte [0x404010], 2
jne 0x403a64
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_exit]
mov dword [esp], eax
call sym._MsiViewClose_4
push eax
jmp 0x40389b
mov dword [esp + 0xc], str.Out_of_memory_for_list._n
mov dword [esp + 8], str.list_append
mov dword [esp + 4], 0x404010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403a49