Function at 0x402030
Capabilities:
Terminate process

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
lea edi, [ebp - 0x260]
sub esp, 0x298
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
mov ecx, 0x12
mov esi, eax
mov dword [ebp - 0x27c], eax
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x238]
cmp esi, 1
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 - 0x21c], eax
mov dword [ebp - 0x220], eax
jle 0x402504
mov esi, 1
mov edx, dword [ebx + esi*4]
lea edi, [esi*4]
movzx ecx, word [edx]
test cx, cx
je 0x4020e6
mov eax, edx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x4020d0
sub eax, edx
sar eax, 1
cmp eax, 2
je 0x402203
cmp dword [ebp - 0x27c], esi
jle 0x402109
mov edi, dword [ebp - 0x27c]
mov edx, dword [ebx + esi*4]
lea eax, [ebp - 0x220]
add esi, 1
call sym._list_append
cmp edi, esi
jne 0x4020f4
mov eax, dword [ebp - 0x260]
test eax, eax
je 0x402504
mov ecx, dword [ebp - 0x25c]
test ecx, ecx
je 0x40252f
mov edx, dword [ebp - 0x248]
test edx, edx
je 0x40222b
lea edi, [ebp - 0x220]
cmp dword [ebp - 0x220], edi
je 0x402e90
mov edx, 3
lea edi, [ebp - 0x258]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], edi
call sym._MsiOpenDatabaseW_12
sub esp, 0xc
test eax, eax
mov edi, eax
je 0x4023ee
test byte [0x404000], 2
jne 0x40258f
mov eax, dword [ebp - 0x258]
mov ebx, 1
test eax, eax
je 0x402525
mov dword [esp], eax
call sym._MsiCloseHandle_4
sub esp, 4
test eax, eax
je 0x4021c9
test byte [0x404000], 4
je 0x4021c9
mov dword [esp + 0xc], str.Failed_to_close_database_handle._n
mov dword [esp + 8], str.close_database
mov dword [esp + 4], global___dbch
mov dword [esp], 2
call sym._wine_dbg_log.constprop.10
lea eax, [ebp - 0x238]
call dbg.list_free
lea eax, [ebp - 0x230]
call dbg.list_free
lea eax, [ebp - 0x228]
call dbg.list_free
lea eax, [ebp - 0x220]
call dbg.list_free
lea esp, [ebp - 0x10]
mov eax, ebx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
and ecx, 0xfffffffd
cmp cx, 0x2d
jne 0x4020e6
movzx eax, word [edx + 2]
sub eax, 0x3f
cmp ax, 0x39
ja case.0x402224.1
movzx eax, ax
jmp dword [eax*4 + 0x405894]
mov ebx, dword [ebp - 0x244]
test ebx, ebx
jne 0x402283
mov ecx, dword [ebp - 0x240]
test ecx, ecx
jne 0x402283
mov edi, dword [ebp - 0x254]
test edi, edi
jne 0x402295
mov ecx, dword [ebp - 0x24c]
test ecx, ecx
jne 0x402a62
mov esi, dword [ebp - 0x250]
test esi, esi
jne 0x402a62
test byte [0x404000], 2
jne 0x403115
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.7
jmp 0x402511
lea edi, [ebp - 0x220]
cmp dword [ebp - 0x220], edi
je 0x402461
mov edx, 1
jmp 0x40214a
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.7
mov dword [esp], 0
call dword [sym.imp.ucrtbase.dll_exit]
lea eax, [esi + 1]
cmp dword [ebp - 0x27c], eax
jle 0x4020e6
mov edx, dword [ebx + edi + 4]
lea eax, [ebp - 0x238]
mov dword [ebp - 0x254], 1
call sym._list_append
mov eax, 2
add esi, eax
cmp dword [ebp - 0x27c], esi
jg 0x4020b9
jmp 0x402109
mov dword [ebp - 0x248], 1
mov eax, 1
jmp 0x4022e5
lea eax, [esi + 1]
cmp dword [ebp - 0x27c], eax
jle 0x4020e6
mov eax, dword [ebx + edi + 4]
mov dword [ebp - 0x260], eax
mov eax, 2
jmp 0x4022e5
mov dword [ebp - 0x240], 1
mov eax, 1
jmp 0x4022e5
lea eax, [esi + 1]
cmp dword [ebp - 0x27c], eax
jle 0x4020e6
mov eax, dword [ebx + edi + 4]
mov dword [ebp - 0x25c], eax
mov eax, 2
jmp 0x4022e5
mov dword [ebp - 0x244], 1
mov eax, 1
jmp 0x4022e5
lea eax, [esi + 1]
cmp dword [ebp - 0x27c], eax
jle 0x4020e6
mov edx, dword [ebx + edi + 4]
lea eax, [ebp - 0x228]
mov dword [ebp - 0x24c], 1
call sym._list_append
mov eax, 2
jmp 0x4022e5
mov dword [ebp - 0x23c], 1
mov eax, 1
jmp 0x4022e5
lea eax, [esi + 1]
cmp dword [ebp - 0x27c], eax
jle 0x4020e6
mov edx, dword [ebx + edi + 4]
lea eax, [ebp - 0x230]
mov dword [ebp - 0x250], 1
call sym._list_append
mov eax, 2
jmp 0x4022e5
mov esi, dword [ebp - 0x254]
test esi, esi
jne 0x402898
mov eax, dword [ebp - 0x240]
test eax, eax
jne 0x402c97
mov eax, dword [ebp - 0x250]
test eax, eax
jne 0x402c58
mov eax, dword [ebp - 0x244]
test eax, eax
jne 0x402c40
mov edi, dword [ebp - 0x24c]
test edi, edi
jne 0x402aaa
mov eax, dword [ebp - 0x258]
test eax, eax
je 0x40245a
mov dword [esp], eax
call sym._MsiDatabaseCommit_4
sub esp, 4
test eax, eax
je 0x403108
test byte [0x404000], 2
jne 0x4024c0
xor ebx, ebx
jmp 0x4021c9
mov ecx, dword [ebp - 0x254]
test ecx, ecx
jne 0x402295
mov ebx, dword [ebp - 0x24c]
test ebx, ebx
jne 0x4027e8
mov ecx, dword [ebp - 0x250]
test ecx, ecx
jne 0x4027e8
test byte [0x404000], 2
je 0x402511
mov dword [esp + 0xc], str.No_tables_specified._n
mov dword [esp + 8], str.valid_state
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x402511
mov dword [esp + 0xc], str.Failed_to_commit_changes_to_database._n
mov dword [esp + 8], str.close_database
xor ebx, ebx
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x4021c9
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.7
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_exit]
test byte [0x404000], 1
jne 0x402a81
mov eax, dword [ebp - 0x258]
test eax, eax
je 0x402525
mov ebx, 1
jmp 0x40218d
mov ebx, 1
jmp 0x4021c9
mov edx, dword [ebp - 0x254]
test edx, edx
jne 0x402125
mov edi, dword [ebp - 0x24c]
test edi, edi
jne 0x402125
mov esi, dword [ebp - 0x250]
test esi, esi
jne 0x402125
test byte [0x404000], 2
je 0x402272
mov dword [esp + 0xc], str.No_table_folder_specified___f_option_._n
mov dword [esp + 8], str.valid_state
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x402272
mov esi, dword [ebp - 0x260]
test esi, esi
je 0x4030e0
mov eax, esi
shr eax, 0x10
test eax, eax
je 0x402680
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, str._invalid_
test edx, edx
jne 0x402693
xor ebx, ebx
cmp word [esi], 0
je 0x4025df
add ebx, 1
cmp word [esi + ebx*2], 0
jne 0x4025d5
lea ecx, [ebp - 0xf6]
lea eax, [ebp - 0x216]
mov byte [ebp - 0x218], 0x4c
mov byte [ebp - 0x217], 0x22
mov dword [ebp - 0x27c], ecx
sub ebx, 1
cmp eax, dword [ebp - 0x27c]
lea edx, [ebx + 1]
ja 0x402654
test edx, edx
jle 0x402654
add esi, 2
movzx edx, word [esi - 2]
cmp dx, 0xd
je 0x402a35
ja 0x4027f8
cmp dx, 9
je 0x402a44
cmp dx, 0xa
jne 0x40283a
mov byte [eax], 0x5c
mov byte [eax + 1], 0x6e
sub ebx, 1
add eax, 2
cmp eax, dword [ebp - 0x27c]
lea edx, [ebx + 1]
jbe 0x40260d
test ebx, ebx
mov byte [eax], 0x22
lea edx, [eax + 1]
jle 0x40266d
lea edx, [eax + 4]
mov byte [eax + 1], 0x2e
mov byte [eax + 2], 0x2e
mov byte [eax + 3], 0x2e
lea eax, [ebp - 0x218]
mov byte [edx], 0
mov dword [esp], eax
call dbg.__wine_dbg_strdup
jmp 0x402693
movzx esi, si
mov dword [esp], str._04x
mov dword [esp + 4], esi
call sym._wine_dbg_sprintf.constprop.8
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_open_database__s__error__d_n
mov dword [esp + 8], 0x4059f8
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
test byte [0x404000], 2
je 0x40217a
mov esi, dword [ebp - 0x260]
test esi, esi
je 0x403013
mov eax, esi
shr eax, 0x10
test eax, eax
je 0x402ea3
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, str._invalid_
test edx, edx
jne 0x4027bb
xor ebx, ebx
cmp word [esi], 0
je 0x40271c
add ebx, 1
cmp word [esi + ebx*2], 0
jne 0x402712
lea edi, [ebp - 0xf6]
lea eax, [ebp - 0x216]
mov byte [ebp - 0x218], 0x4c
mov byte [ebp - 0x217], 0x22
mov dword [ebp - 0x27c], edi
sub ebx, 1
cmp eax, dword [ebp - 0x27c]
lea edx, [ebx + 1]
ja 0x402791
test edx, edx
jle 0x402791
add esi, 2
movzx edx, word [esi - 2]
cmp dx, 0xd
je 0x402e4e
ja 0x402817
cmp dx, 9
je 0x402e5d
cmp dx, 0xa
jne 0x402df0
mov byte [eax], 0x5c
mov byte [eax + 1], 0x6e
sub ebx, 1
add eax, 2
cmp eax, dword [ebp - 0x27c]
lea edx, [ebx + 1]
jbe 0x40274a
test ebx, ebx
mov byte [eax], 0x22
lea edx, [eax + 1]
jle 0x4027aa
lea edx, [eax + 4]
mov byte [eax + 1], 0x2e
mov byte [eax + 2], 0x2e
mov byte [eax + 3], 0x2e
lea eax, [ebp - 0x218]
mov byte [edx], 0
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_open_database__s._n
mov dword [esp + 8], str.wmain
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x40217a
cmp edx, 1
sbb edx, edx
and edx, 0xfffffffe
add edx, 3
jmp 0x40214a
cmp dx, 0x22
je 0x402a53
cmp dx, 0x5c
jne 0x40283a
mov byte [eax], 0x5c
mov byte [eax + 1], 0x5c
add eax, 2
jmp 0x4025ff
cmp dx, 0x22
je 0x402e81
cmp dx, 0x5c
jne 0x402df0
mov byte [eax], 0x5c
mov byte [eax + 1], 0x5c
add eax, 2
jmp 0x40273c
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x402fa0
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefopen_database]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefopen_database]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefopen_database]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefopen_database]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x4025ff
lea eax, [ebp - 0x218]
mov edi, dword [ebp - 0x238]
mov dword [ebp - 0x27c], eax
lea eax, [ebp - 0x238]
cmp edi, eax
jne 0x4028fe
jmp 0x4023fc
test byte [0x404000], 2
jne 0x402978
mov eax, dword [ebp - 0x218]
test eax, eax
je 0x402511
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
test esi, esi
jne 0x402511
mov edi, dword [edi]
lea eax, [ebp - 0x238]
cmp edi, eax
je 0x4023fc
mov eax, dword [ebp - 0x27c]
mov ebx, dword [edi + 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
mov esi, eax
jne 0x4028c0
mov dword [esp], 2
call sym._MsiCreateRecord_4
sub esp, 4
test eax, eax
mov dword [ebp - 0x280], eax
jne 0x4029a1
test byte [0x404000], 2
jne 0x402e6c
mov eax, dword [ebp - 0x218]
test eax, eax
je 0x402511
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
jmp 0x402511
mov dword [esp + 0xc], str.Failed_to_open__Streams_table._n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x4028cd
mov dword [esp + 4], 0x2f
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_wcsrchr]
test eax, eax
je 0x40313e
add eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x280]
mov dword [esp + 4], 1
mov dword [esp], eax
call sym._MsiRecordSetStringW_12
sub esp, 0xc
test eax, eax
mov esi, eax
je 0x40301d
test byte [0x404000], 2
je 0x402a11
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], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
mov eax, dword [ebp - 0x280]
mov dword [esp], eax
call sym._MsiCloseHandle_4
mov eax, dword [ebp - 0x218]
sub esp, 4
test eax, eax
je 0x4028e6
jmp 0x4028db
mov byte [eax], 0x5c
mov byte [eax + 1], 0x72
add eax, 2
jmp 0x4025ff
mov byte [eax], 0x5c
mov byte [eax + 1], 0x74
add eax, 2
jmp 0x4025ff
mov byte [eax], 0x5c
mov byte [eax + 1], 0x22
add eax, 2
jmp 0x4025ff
lea edi, [ebp - 0x220]
cmp dword [ebp - 0x220], edi
jne 0x402295
test ecx, ecx
je 0x40247d
jmp 0x402295
mov dword [esp + 0xc], str.GUI_operation_is_not_currently_supported._n
mov dword [esp + 8], str.valid_state
mov dword [esp + 4], global___dbch
mov dword [esp], 0
call sym._wine_dbg_log.constprop.10
jmp 0x402511
mov edi, dword [ebp - 0x228]
lea eax, [ebp - 0x228]
cmp edi, eax
je 0x402434
lea eax, [ebp - 0x218]
mov dword [ebp - 0x27c], eax
jmp 0x402b0a
test byte [0x404000], 2
jne 0x402ba0
mov eax, dword [ebp - 0x218]
test eax, eax
je 0x402511
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
test esi, esi
jne 0x402511
mov edi, dword [edi]
lea eax, [ebp - 0x228]
cmp edi, eax
je 0x402434
mov eax, dword [edi + 8]
mov dword [esp + 4], str.DELETE_FROM__Streams_WHERE_Name___
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x280], eax
mov eax, dword [ebp - 0x27c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x258]
mov dword [esp], eax
call sym._MsiDatabaseOpenViewW_12
sub esp, 0xc
test eax, eax
mov esi, eax
jne 0x402acc
mov dword [esp], 1
call sym._MsiCreateRecord_4
sub esp, 4
test eax, eax
mov ebx, eax
jne 0x402bc9
test byte [0x404000], 2
je 0x40295a
mov dword [esp + 0xc], str.Failed_to_create_MSI_record._n
mov dword [esp + 8], str.kill_stream
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
mov eax, dword [ebp - 0x218]
test eax, eax
jne 0x402968
jmp 0x402511
mov dword [esp + 0xc], str.Failed_to_open__Streams_table._n
mov dword [esp + 8], str.kill_stream
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x402ad9
mov eax, dword [ebp - 0x280]
mov dword [esp + 4], 1
mov dword [esp], ebx
mov dword [esp + 8], eax
call sym._MsiRecordSetStringW_12
sub esp, 0xc
test eax, eax
mov esi, eax
je 0x40308a
test byte [0x404000], 2
je 0x402c1d
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], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
mov dword [esp], ebx
call sym._MsiCloseHandle_4
mov eax, dword [ebp - 0x218]
sub esp, 4
test eax, eax
je 0x402af2
jmp 0x402ae7
lea eax, [ebp - 0x260]
call dbg.import_tables
test eax, eax
jne 0x402426
jmp 0x40217a
mov ebx, dword [ebp - 0x230]
lea eax, [ebp - 0x230]
cmp ebx, eax
jne 0x402c80
jmp 0x402418
mov ebx, dword [ebx]
lea eax, [ebp - 0x230]
cmp ebx, eax
je 0x402418
mov edx, dword [ebx + 8]
lea eax, [ebp - 0x258]
call sym._extract_stream.isra.3
test eax, eax
jne 0x402c70
jmp 0x402511
mov edi, dword [ebp - 0x220]
lea eax, [ebp - 0x220]
cmp edi, eax
je 0x40240a
mov dword [esp + 4], 0x405302
mov eax, dword [edi + 8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_lstrcmpW]
sub esp, 8
test eax, eax
jne 0x402d63
lea eax, [ebp - 0x26c]
mov dword [esp + 4], str.SELECT_Name_FROM__Tables
mov dword [ebp - 0x26c], 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 0x402d90
test byte [0x404000], 2
jne 0x402faa
mov eax, dword [ebp - 0x26c]
test eax, eax
je 0x402511
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
test eax, eax
je 0x402511
test byte [0x404000], 2
je 0x40217a
mov dword [esp + 0xc], str.Failed_to_close__Streams_table._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x40217a
mov edx, dword [edi + 8]
lea eax, [ebp - 0x260]
call dbg.export_table
test eax, eax
je 0x402511
mov edi, dword [edi]
lea eax, [ebp - 0x220]
cmp edi, eax
jne 0x402cab
jmp 0x40240a
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._MsiViewExecute_8
sub esp, 8
test eax, eax
je 0x402ebb
test byte [0x404000], 2
je 0x402d0c
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], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x402d0c
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x403080
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefopen_database]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefopen_database]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefopen_database]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefopen_database]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x40273c
mov byte [eax], 0x5c
mov byte [eax + 1], 0x72
add eax, 2
jmp 0x40273c
mov byte [eax], 0x5c
mov byte [eax + 1], 0x74
add eax, 2
jmp 0x40273c
mov dword [esp + 0xc], str.Failed_to_create_MSI_record._n
mov dword [esp + 8], str.add_stream
jmp 0x402b78
mov byte [eax], 0x5c
mov byte [eax + 1], 0x22
add eax, 2
jmp 0x40273c
mov ebx, dword [ebp - 0x254]
test ebx, ebx
je 0x40246f
jmp 0x402145
movzx esi, si
mov dword [esp], str._04x
mov dword [esp + 4], esi
call sym._wine_dbg_sprintf.constprop.8
jmp 0x4027bb
lea esi, [ebp - 0x268]
lea ebx, [ebp - 0x218]
jmp 0x402f38
test eax, eax
jne 0x402fd3
lea eax, [ebp - 0x264]
mov dword [esp + 8], ebx
mov dword [esp + 4], 1
mov dword [ebp - 0x264], 0x100
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x268]
mov dword [esp], eax
call sym._MsiRecordGetStringW_16
sub esp, 0x10
test eax, eax
jne 0x4031ef
lea eax, [ebp - 0x260]
mov edx, ebx
call dbg.export_table
test eax, eax
je 0x403000
mov eax, dword [ebp - 0x268]
mov dword [esp], eax
call sym._MsiCloseHandle_4
sub esp, 4
test eax, eax
jne 0x4031b9
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 0x402ec9
lea eax, [ebp - 0x260]
mov edx, str._SummaryInformation
call dbg.export_table
test eax, eax
mov eax, dword [ebp - 0x26c]
je 0x402d12
test eax, eax
je 0x402d79
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
test eax, eax
jne 0x402d2d
jmp 0x402d79
mov byte [eax], dl
add eax, 1
jmp 0x4025ff
mov dword [esp + 0xc], str.Failed_to_open__Tables_table._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x402d0c
test byte [0x404000], 2
je 0x403000
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], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
mov eax, dword [ebp - 0x26c]
test eax, eax
je 0x402511
jmp 0x402d1a
mov eax, str._null_
jmp 0x4027bb
mov eax, dword [ebp - 0x280]
mov dword [esp + 8], ebx
mov dword [esp + 4], 2
mov dword [esp], eax
call sym._MsiRecordSetStreamW_12
sub esp, 0xc
test eax, eax
mov esi, eax
je 0x40315e
test byte [0x404000], 2
je 0x402a11
mov dword [esp + 0xc], str.Failed_to_add_stream_to_MSI_record._n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x402a11
mov byte [eax], dl
add eax, 1
jmp 0x40273c
mov eax, dword [ebp - 0x218]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._MsiViewExecute_8
sub esp, 8
test eax, eax
mov esi, eax
je 0x4030ea
test byte [0x404000], 2
je 0x402c1d
mov dword [esp + 0xc], str.Failed_to_delete_stream_from__Streams_table._n
mov dword [esp + 8], str.kill_stream
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x402c1d
mov eax, str._null_
jmp 0x402693
mov dword [esp], ebx
call sym._MsiCloseHandle_4
mov eax, dword [ebp - 0x218]
sub esp, 4
test eax, eax
je 0x402afa
jmp 0x402ae7
mov eax, dword [ebp - 0x258]
xor ebx, ebx
jmp 0x40218d
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], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x402272
mov dword [esp + 4], 0x5c
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_wcsrchr]
lea edx, [eax + 2]
test eax, eax
mov eax, edx
cmove eax, ebx
jmp 0x4029bd
mov eax, dword [ebp - 0x280]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x218]
mov dword [esp], eax
call sym._MsiViewExecute_8
sub esp, 8
test eax, eax
mov esi, eax
je 0x403225
test byte [0x404000], 2
je 0x402a11
mov dword [esp + 0xc], str.Failed_to_add_stream_to__Streams_table._n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x402a11
test byte [0x404000], 2
je 0x403000
mov dword [esp + 0xc], str.Failed_to_close_record_handle._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x403000
test byte [0x404000], 2
je 0x403000
mov dword [esp + 0xc], str.Failed_to_retrieve_name_string._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.10
jmp 0x403000
mov eax, dword [ebp - 0x280]
mov dword [esp], eax
call sym._MsiCloseHandle_4
mov eax, dword [ebp - 0x218]
sub esp, 4
test eax, eax
je 0x4028ee
jmp 0x4028db