Function at 0x402ab0
Capabilities:
Terminate process

Disassembly:
push ebp
xor eax, eax
mov ecx, 0xa
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x254]
push ebx
sub esp, 0x270
cmp dword [ebp + 8], 1
mov ebx, dword [ebp + 0xc]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x224]
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x224], eax
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x214]
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x214], eax
jle 0x4030d1
mov esi, 1
lea esi, [esi]
mov edx, dword [ebx + esi*4]
lea edi, [esi*4]
movzx ecx, word [edx]
test cx, cx
je 0x402b80
mov eax, edx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x402b40
sub eax, edx
cmp eax, 4
jne 0x402b80
and ecx, 0xfffffffd
cmp cx, 0x2d
jne 0x402b80
movzx eax, word [edx + 2]
sub eax, 0x3f
cmp ax, 0x39
ja case.0x402b6d.1
movzx eax, ax
jmp dword [eax*4 + 0x405898]
lea eax, [esi + 1]
cmp dword [ebp + 8], eax
jg 0x403080
cmp dword [ebp + 8], esi
jle 0x402bca
lea esi, [esi]
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 0x4039f0
mov edx, dword [ebp - 0x210]
lea ecx, [ebp - 0x214]
mov dword [eax + 8], edi
inc esi
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x210], eax
cmp dword [ebp + 8], esi
jne 0x402b88
mov eax, dword [ebp - 0x254]
test eax, eax
je 0x4030d1
mov ecx, dword [ebp - 0x250]
test ecx, ecx
je 0x402fd6
mov edx, dword [ebp - 0x23c]
test edx, edx
jne 0x402ca4
mov edx, dword [ebp - 0x238]
or edx, dword [ebp - 0x234]
jne 0x402e4f
mov edi, dword [ebp - 0x248]
mov edx, 1
test edi, edi
jne 0x402cbb
mov ecx, dword [ebp - 0x240]
or ecx, dword [ebp - 0x244]
jne 0x402cbb
test byte [0x404010], 2
jne 0x4039c0
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
lea esi, [esi]
mov eax, dword [ebp - 0x24c]
test eax, eax
je 0x403115
mov dword [esp], eax
mov esi, 1
call sym._MsiCloseHandle_4
sub esp, 4
test eax, eax
je 0x402d60
test byte [0x404010], 4
je 0x402d60
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 0x402d60
lea ebx, [ebp - 0x214]
cmp dword [ebp - 0x214], ebx
je 0x403028
mov edx, 3
lea ecx, [ebp - 0x24c]
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 0x40311f
mov esi, dword [ebp - 0x248]
test esi, esi
jne 0x4031ca
mov ebx, dword [ebp - 0x234]
test ebx, ebx
jne 0x403365
mov ecx, dword [ebp - 0x244]
test ecx, ecx
jne 0x403468
mov eax, dword [ebp - 0x238]
test eax, eax
jne 0x4034a7
mov eax, dword [ebp - 0x240]
test eax, eax
jne 0x4035e8
mov eax, dword [ebp - 0x24c]
test eax, eax
je 0x4031c3
mov dword [esp], eax
call sym._MsiDatabaseCommit_4
sub esp, 4
test eax, eax
jne 0x4031b6
mov eax, dword [ebp - 0x24c]
xor esi, esi
mov dword [esp], eax
call sym._MsiCloseHandle_4
sub esp, 4
test eax, eax
jne 0x402c6e
mov eax, dword [ebp - 0x22c]
lea edx, [ebp - 0x22c]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, edx
je 0x402d9d
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 - 0x22c]
mov edi, dword [edi]
cmp eax, ecx
jne 0x402d80
mov eax, dword [ebp - 0x224]
lea edx, [ebp - 0x224]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, edx
je 0x402dd5
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 - 0x224]
mov edi, dword [edi]
cmp eax, ecx
jne 0x402db8
mov eax, dword [ebp - 0x21c]
lea edx, [ebp - 0x21c]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, edx
je 0x402e0d
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 - 0x21c]
mov edi, dword [edi]
cmp eax, ecx
jne 0x402df0
mov eax, dword [ebp - 0x214]
lea edx, [ebp - 0x214]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, edx
je 0x402e45
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 - 0x214]
mov edi, dword [edi]
cmp eax, ecx
jne 0x402e28
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebx, [ebp - 0x214]
cmp dword [ebp - 0x214], ebx
je 0x403690
mov edx, 1
jmp 0x402cbb
mov dword [ebp - 0x238], 1
mov eax, 1
lea esi, [esi]
add esi, eax
cmp dword [ebp + 8], esi
jg 0x402b28
jmp 0x402bca
lea eax, [esi + 1]
cmp dword [ebp + 8], eax
jle 0x402b80
mov eax, dword [ebx + edi + 4]
mov dword [ebp - 0x250], eax
mov eax, 2
jmp 0x402e80
mov dword [ebp - 0x234], 1
mov eax, 1
jmp 0x402e80
lea eax, [esi + 1]
cmp dword [ebp + 8], eax
jle 0x402b80
mov eax, dword [ebx + edi + 4]
mov dword [ebp - 0x254], eax
mov eax, 2
jmp 0x402e80
lea eax, [esi + 1]
cmp dword [ebp + 8], eax
jle 0x402b80
mov dword [ebp - 0x244], 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 0x4039e9
mov edx, dword [ebp - 0x220]
mov dword [eax + 8], edi
lea edi, [ebp - 0x224]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x220], eax
mov eax, 2
jmp 0x402e80
mov dword [ebp - 0x230], 1
mov eax, 1
jmp 0x402e80
lea eax, [esi + 1]
cmp dword [ebp + 8], eax
jle 0x402b80
mov dword [ebp - 0x240], 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 0x4039e9
mov edx, dword [ebp - 0x218]
mov dword [eax + 8], edi
lea edi, [ebp - 0x21c]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x218], eax
mov eax, 2
jmp 0x402e80
mov dword [ebp - 0x23c], 1
mov eax, 1
jmp 0x402e80
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 - 0x248]
or edx, dword [ebp - 0x240]
or edx, dword [ebp - 0x244]
jne 0x402be6
test byte [0x404010], 2
je 0x402c38
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 0x402c38
mov ecx, dword [ebp - 0x248]
test ecx, ecx
jne 0x402cb6
mov edx, dword [ebp - 0x240]
or edx, dword [ebp - 0x244]
jne 0x402cb6
test byte [0x404010], 2
je 0x402c48
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 0x402c48
mov dword [ebp - 0x248], 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 0x4039e9
mov edx, dword [ebp - 0x228]
mov dword [eax + 8], edi
lea edi, [ebp - 0x22c]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x228], eax
mov eax, 2
jmp 0x402e80
test byte [0x404010], 1
je 0x402c48
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 - 0x24c]
test eax, eax
jne 0x402d4d
mov esi, 1
jmp 0x402d60
test byte [0x404010], 2
je 0x402c48
mov eax, dword [ebp - 0x254]
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 0x402c48
mov eax, dword [ebp - 0x254]
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 - 0x24c]
test eax, eax
jne 0x402c56
jmp 0x403115
test byte [0x404010], 2
jne 0x403703
xor esi, esi
jmp 0x402d60
mov ebx, dword [ebp - 0x22c]
lea eax, [ebp - 0x22c]
cmp ebx, eax
je 0x402cec
lea edi, [ebp - 0x20c]
mov dword [ebp - 0x264], edi
lea esi, [esi]
mov eax, dword [ebp - 0x264]
mov esi, dword [ebx + 8]
mov dword [esp + 4], str.INSERT_INTO__Streams__Name__Data__VALUES_______
mov dword [ebp - 0x20c], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24c]
mov dword [esp], eax
call sym._MsiDatabaseOpenViewW_12
sub esp, 0xc
test eax, eax
je 0x40324f
test byte [0x404010], 2
jne 0x4032e9
mov eax, dword [ebp - 0x20c]
test eax, eax
je 0x402c48
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
jmp 0x402c48
mov dword [esp], 2
call sym._MsiCreateRecord_4
sub esp, 4
mov edi, eax
test eax, eax
jne 0x403293
test byte [0x404010], 2
je 0x403231
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 0x403231
mov dword [esp + 4], 0x2f
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
test eax, eax
je 0x4035c8
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 0x403312
mov ebx, edi
test byte [0x404010], 2
jne 0x403860
mov dword [esp], ebx
call sym._MsiCloseHandle_4
sub esp, 4
jmp 0x403231
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 0x403231
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 0x4036b8
mov ebx, edi
test byte [0x404010], 2
je 0x4032d9
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 0x4032d9
mov edi, dword [ebp - 0x214]
lea eax, [ebp - 0x214]
cmp edi, eax
je 0x402cfa
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 0x403438
lea eax, [ebp - 0x260]
mov dword [esp + 4], str.SELECT_Name_FROM__Tables
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x260], 0
mov dword [esp], eax
call sym._MsiDatabaseOpenViewW_12
sub esp, 0xc
test eax, eax
je 0x4034bf
test byte [0x404010], 2
jne 0x40372e
mov eax, dword [ebp - 0x260]
test eax, eax
je 0x402c48
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
test eax, eax
je 0x402c48
test byte [0x404010], 2
je 0x402c48
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 0x402c48
mov edx, dword [edi + 8]
lea eax, [ebp - 0x254]
call sym._export_table
test eax, eax
je 0x402c48
mov edi, dword [edi]
lea eax, [ebp - 0x214]
cmp edi, eax
jne 0x403379
jmp 0x402cfa
mov ebx, dword [ebp - 0x224]
lea eax, [ebp - 0x224]
cmp ebx, eax
jne 0x403490
jmp 0x402d08
mov ebx, dword [ebx]
lea eax, [ebp - 0x224]
cmp ebx, eax
je 0x402d08
mov edx, dword [ebx + 8]
lea eax, [ebp - 0x254]
call sym._extract_stream
test eax, eax
jne 0x403480
jmp 0x402c48
lea eax, [ebp - 0x254]
call sym._import_tables
test eax, eax
jne 0x402d16
jmp 0x402c48
mov eax, dword [ebp - 0x260]
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._MsiViewExecute_8
sub esp, 8
test eax, eax
jne 0x403757
lea esi, [ebp - 0x25c]
lea ebx, [ebp - 0x20c]
jmp 0x40355d
test eax, eax
jne 0x403907
lea eax, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [ebp - 0x258], 0x100
call sym._MsiRecordGetStringW_16
sub esp, 0x10
test eax, eax
jne 0x403973
mov edx, ebx
lea eax, [ebp - 0x254]
call sym._export_table
test eax, eax
je 0x4033da
mov eax, dword [ebp - 0x25c]
mov dword [esp], eax
call sym._MsiCloseHandle_4
sub esp, 4
test eax, eax
jne 0x40393d
mov eax, dword [ebp - 0x260]
mov dword [esp + 4], esi
mov dword [ebp - 0x25c], 0
mov dword [esp], eax
call sym._MsiViewFetch_8
sub esp, 8
cmp eax, 0x103
jne 0x4034ee
mov edx, str._SummaryInformation
lea eax, [ebp - 0x254]
call sym._export_table
test eax, eax
je 0x4033da
mov eax, dword [ebp - 0x260]
test eax, eax
je 0x40344e
mov dword [esp], eax
call sym._MsiViewClose_4
push edx
test eax, eax
je 0x40344e
jmp 0x4033fb
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 0x4032af
mov ebx, dword [ebp - 0x21c]
lea eax, [ebp - 0x21c]
cmp ebx, eax
je 0x402d24
lea edi, [ebp - 0x20c]
mov eax, dword [ebp - 0x24c]
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 - 0x20c], 0
call sym._MsiDatabaseOpenViewW_12
sub esp, 0xc
test eax, eax
je 0x403790
test byte [0x404010], 2
je 0x403231
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 0x403231
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 - 0x248]
test edx, edx
jne 0x402e61
mov edx, dword [ebp - 0x240]
or edx, dword [ebp - 0x244]
je 0x403048
jmp 0x402e61
mov eax, dword [ebp - 0x20c]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._MsiViewExecute_8
sub esp, 8
test eax, eax
jne 0x4038cf
mov dword [esp], edi
call sym._MsiCloseHandle_4
mov eax, dword [ebp - 0x20c]
sub esp, 4
test eax, eax
jne 0x4039a9
mov ebx, dword [ebx]
lea eax, [ebp - 0x22c]
cmp ebx, eax
jne 0x4031f0
jmp 0x402cec
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 0x402d60
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 0x4033da
test byte [0x404010], 2
je 0x4033da
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 0x4033da
mov dword [esp], 1
call sym._MsiCreateRecord_4
sub esp, 4
test eax, eax
jne 0x4037c5
test byte [0x404010], 2
je 0x403231
mov dword [esp + 0xc], str.Failed_to_create_MSI_record._n
mov dword [esp + 8], str.kill_stream
jmp 0x40327d
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [ebp - 0x264], eax
call sym._MsiRecordSetStringW_12
mov edx, dword [ebp - 0x264]
sub esp, 0xc
test eax, eax
je 0x403809
test byte [0x404010], 2
jne 0x403889
mov dword [esp], edx
call sym._MsiCloseHandle_4
sub esp, 4
jmp 0x403231
mov eax, dword [ebp - 0x20c]
mov dword [esp + 4], edx
mov dword [ebp - 0x264], edx
mov dword [esp], eax
call sym._MsiViewExecute_8
mov edx, dword [ebp - 0x264]
sub esp, 8
test eax, eax
jne 0x4038b8
mov dword [esp], edx
call sym._MsiCloseHandle_4
mov eax, dword [ebp - 0x20c]
sub esp, 4
test eax, eax
jne 0x403a06
mov ebx, dword [ebx]
lea eax, [ebp - 0x21c]
cmp ebx, eax
jne 0x403602
jmp 0x402d24
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 0x4032d9
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 - 0x264]
jmp 0x4037f9
test byte [0x404010], 2
je 0x4037f9
mov dword [esp + 0xc], str.Failed_to_delete_stream_from__Streams_table._n
jmp 0x403891
mov ebx, edi
test byte [0x404010], 2
je 0x4032d9
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 0x4032d9
test byte [0x404010], 2
je 0x4033da
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 0x4033da
test byte [0x404010], 2
je 0x4033da
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 0x4033da
test byte [0x404010], 2
je 0x4033da
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 0x4033da
mov dword [esp], eax
call sym._MsiViewClose_4
push esi
jmp 0x4036ee
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 0x402c38
call sym._list_append.part.0
nop
test byte [0x404010], 2
jne 0x403a14
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_exit]
mov dword [esp], eax
call sym._MsiViewClose_4
push eax
jmp 0x40384b
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 0x4039f9