Function at 0x401910
Capabilities:
Reference sql statements
Terminate process
Write file on windows

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
pxor xmm0, xmm0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea ebx, [ebp - 0x768]
push ecx
movd xmm1, ebx
lea ebx, [ebp - 0x770]
punpckldq xmm1, xmm1
sub esp, 0x7c4
movups xmmword [ebp - 0x788], xmm0
mov eax, dword [ecx]
mov esi, dword [ecx + 4]
movups xmmword [ebp - 0x798], xmm0
movups xmmword [ebp - 0x780], xmm0
movd xmm0, ebx
lea ebx, [ebp - 0x758]
punpckldq xmm0, xmm0
mov dword [ebp - 0x7a8], eax
punpcklqdq xmm0, xmm1
movd xmm1, ebx
lea ebx, [ebp - 0x760]
movups xmmword [ebp - 0x770], xmm0
movd xmm0, ebx
punpckldq xmm1, xmm1
punpckldq xmm0, xmm0
punpcklqdq xmm0, xmm1
movups xmmword [ebp - 0x760], xmm0
cmp eax, 1
jle 0x402148
mov ebx, 1
mov edx, dword [esi + ebx*4]
lea edi, [ebx*4]
movzx ecx, word [edx]
test cx, cx
je 0x401a08
mov eax, edx
lea esi, cs:[esi]
add eax, 2
cmp word [eax], 0
jne 0x4019c0
sub eax, edx
cmp eax, 4
jne 0x401a08
and ecx, 0xfffffffd
cmp cx, 0x2d
jne 0x401a08
movzx eax, word [edx + 2]
sub eax, 0x3f
cmp ax, 0x39
ja case.0x4019ed.1
movzx eax, ax
jmp dword [eax*4 + 0x407894]
lea eax, [ebx + 1]
cmp dword [ebp - 0x7a8], eax
jg 0x402040
lea esi, cs:[esi]
cmp dword [ebp - 0x7a8], ebx
jle 0x401a57
mov edi, dword [esi + ebx*4]
mov dword [esp + 4], 0xc
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_calloc]
test eax, eax
je 0x403776
mov edx, dword [ebp - 0x754]
lea ecx, [ebp - 0x758]
mov dword [eax + 8], edi
add ebx, 1
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x754], eax
cmp dword [ebp - 0x7a8], ebx
jne 0x401a10
mov eax, dword [ebp - 0x798]
test eax, eax
je 0x402148
mov esi, dword [ebp - 0x794]
test esi, esi
je 0x401df9
mov ebx, dword [ebp - 0x780]
test ebx, ebx
jne 0x401ad0
mov edx, dword [ebp - 0x77c]
or edx, dword [ebp - 0x778]
jne 0x401c83
mov ecx, dword [ebp - 0x78c]
mov edx, 1
test ecx, ecx
jne 0x401ae7
mov ecx, dword [ebp - 0x784]
or ecx, dword [ebp - 0x788]
jne 0x401ae7
test byte [section..data], 2
jne 0x403990
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
jmp 0x401f13
mov edx, 3
lea esi, [ebp - 0x758]
cmp dword [ebp - 0x758], esi
je 0x401e47
lea ecx, [ebp - 0x790]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp], eax
call sym._MsiOpenDatabaseW_12
sub esp, 0xc
mov esi, eax
test eax, eax
jne 0x40217e
mov eax, dword [ebp - 0x78c]
test eax, eax
jne 0x401ea0
mov eax, dword [ebp - 0x778]
test eax, eax
jne 0x401f6f
mov eax, dword [ebp - 0x788]
test eax, eax
jne 0x402358
mov esi, dword [ebp - 0x77c]
test esi, esi
jne 0x402561
mov ebx, dword [ebp - 0x784]
mov eax, dword [ebp - 0x790]
test ebx, ebx
jne 0x40286a
test eax, eax
je 0x40234a
mov dword [esp], eax
call sym._MsiDatabaseCommit_4
sub esp, 4
test eax, eax
jne 0x40233d
mov eax, dword [ebp - 0x790]
xor ebx, ebx
mov dword [esp], eax
call sym._MsiCloseHandle_4
sub esp, 4
test eax, eax
jne 0x401f39
lea esi, [esi]
mov eax, dword [ebp - 0x770]
lea ecx, [ebp - 0x770]
mov esi, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, ecx
je 0x401bcd
lea esi, cs:[esi]
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov ecx, dword [eax]
mov dword [edx], ecx
mov dword [esp], eax
call esi
mov eax, edi
lea ecx, [ebp - 0x770]
mov edi, dword [edi]
cmp eax, ecx
jne 0x401bb0
mov eax, dword [ebp - 0x768]
lea ecx, [ebp - 0x768]
mov esi, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, ecx
je 0x401c05
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 esi
mov eax, edi
lea ecx, [ebp - 0x768]
mov edi, dword [edi]
cmp eax, ecx
jne 0x401be8
mov eax, dword [ebp - 0x760]
lea ecx, [ebp - 0x760]
mov esi, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, ecx
je 0x401c3d
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 esi
mov eax, edi
lea ecx, [ebp - 0x760]
mov edi, dword [edi]
cmp eax, ecx
jne 0x401c20
mov eax, dword [ebp - 0x758]
lea ecx, [ebp - 0x758]
mov esi, dword [sym.imp.ucrtbase.dll_free]
mov edi, dword [eax]
cmp eax, ecx
je 0x401c75
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 esi
mov eax, edi
lea edx, [ebp - 0x758]
mov edi, dword [edi]
cmp eax, edx
jne 0x401c58
lea esp, [ebp - 0x10]
mov eax, ebx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
lea esi, [ebp - 0x758]
cmp dword [ebp - 0x758], esi
je 0x402a5e
mov edx, 1
jmp 0x401ae7
mov dword [ebp - 0x77c], 1
mov eax, 1
add ebx, eax
cmp dword [ebp - 0x7a8], ebx
jg 0x4019a7
jmp 0x401a57
lea eax, [ebx + 1]
cmp dword [ebp - 0x7a8], eax
jle 0x401a08
mov eax, dword [esi + edi + 4]
mov dword [ebp - 0x794], eax
mov eax, 2
jmp 0x401cae
mov dword [ebp - 0x778], 1
jmp 0x401ca9
lea eax, [ebx + 1]
cmp dword [ebp - 0x7a8], eax
jle 0x401a08
mov eax, dword [esi + edi + 4]
mov dword [ebp - 0x798], eax
jmp 0x401ce1
mov dword [ebp - 0x774], 1
jmp 0x401ca9
lea eax, [ebx + 1]
cmp dword [ebp - 0x7a8], eax
jle 0x401a08
mov dword [ebp - 0x784], 1
mov edi, dword [esi + edi + 4]
mov dword [esp + 4], 0xc
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_calloc]
test eax, eax
je 0x40378c
mov edx, dword [ebp - 0x75c]
mov dword [eax + 8], edi
lea edi, [ebp - 0x760]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x75c], eax
jmp 0x401ce1
mov dword [ebp - 0x780], 1
jmp 0x401ca9
lea eax, [ebx + 1]
cmp dword [ebp - 0x7a8], eax
jle 0x401a08
mov dword [ebp - 0x78c], 1
mov edi, dword [esi + edi + 4]
mov dword [esp + 4], 0xc
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_calloc]
test eax, eax
je 0x40378c
mov edx, dword [ebp - 0x76c]
mov dword [eax + 8], edi
lea edi, [ebp - 0x770]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x76c], eax
jmp 0x401ce1
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 - 0x78c]
or edx, dword [ebp - 0x784]
or edx, dword [ebp - 0x788]
jne 0x401a73
test byte [section..data], 2
jne 0x402beb
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
mov ebx, 1
call sym._wine_dbg_printf.constprop.0
mov eax, dword [ebp - 0x790]
test eax, eax
jne 0x401b79
mov ebx, 1
jmp 0x401b90
mov ecx, dword [ebp - 0x78c]
test ecx, ecx
jne 0x401ae7
mov ecx, dword [ebp - 0x788]
or ecx, dword [ebp - 0x784]
jne 0x401ae7
test byte [section..data], 2
je 0x401f13
mov dword [esp + 0xc], str.No_tables_specified._n
mov dword [esp + 8], str.valid_state
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x401f13
mov ebx, dword [ebp - 0x770]
lea eax, [ebp - 0x770]
cmp ebx, eax
je 0x401b18
lea eax, [ebp - 0x418]
mov dword [ebp - 0x7a8], eax
mov eax, dword [ebp - 0x7a8]
mov edi, dword [ebx + 8]
mov dword [ebp - 0x418], 0
mov dword [esp + 4], str.INSERT_INTO__Streams__Name__Data__VALUES_______
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x790]
mov dword [esp], eax
call sym._MsiDatabaseOpenViewW_12
sub esp, 0xc
test eax, eax
je 0x40208c
test byte [section..data], 2
jne 0x40225d
mov eax, dword [ebp - 0x418]
test eax, eax
jne 0x4020e0
mov eax, dword [ebp - 0x790]
test eax, eax
je 0x401e3d
mov dword [esp], eax
mov ebx, 1
call sym._MsiCloseHandle_4
sub esp, 4
test eax, eax
je 0x401b90
test byte [section..data], 4
je 0x401b90
mov dword [esp + 0xc], str.Failed_to_close_database_handle._n
mov dword [esp + 8], str.close_database
mov dword [esp + 4], 0x405000
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
jmp 0x401b90
mov eax, dword [ebp - 0x758]
lea esi, [ebp - 0x758]
cmp eax, esi
je 0x401b26
mov esi, eax
mov dword [esp + 4], 0x4072da
mov eax, dword [esi + 8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_lstrcmpW]
sub esp, 8
test eax, eax
jne 0x40226a
mov dword [ebp - 0x7a4], 0
lea eax, [ebp - 0x7a4]
mov dword [esp + 8], eax
mov dword [esp + 4], str.SELECT_Name_FROM__Tables
mov eax, dword [ebp - 0x790]
mov dword [esp], eax
call sym._MsiDatabaseOpenViewW_12
sub esp, 0xc
test eax, eax
je 0x402643
test byte [section..data], 2
jne 0x402aed
mov eax, dword [ebp - 0x7a4]
test eax, eax
je 0x401f13
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
test eax, eax
je 0x401f13
test byte [section..data], 2
je 0x401f13
mov dword [esp + 0xc], str.Failed_to_close__Streams_table._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x401f13
mov dword [ebp - 0x788], 1
mov edi, dword [esi + edi + 4]
mov dword [esp + 4], 0xc
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_calloc]
test eax, eax
je 0x40378c
mov edx, dword [ebp - 0x764]
mov dword [eax + 8], edi
lea edi, [ebp - 0x768]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ebp - 0x764], eax
jmp 0x401ce1
mov dword [esp], 2
call sym._MsiCreateRecord_4
sub esp, 4
mov esi, eax
test eax, eax
jne 0x4020f0
test byte [section..data], 2
je 0x401f05
mov dword [esp + 0xc], str.Failed_to_create_MSI_record._n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], section..data
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
mov eax, dword [ebp - 0x418]
test eax, eax
je 0x401f13
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
jmp 0x401f13
mov dword [esp + 4], 0x2f
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
test eax, eax
je 0x40284a
add eax, 2
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], esi
call sym._MsiRecordSetStringW_12
sub esp, 0xc
test eax, eax
je 0x4022e8
test byte [section..data], 2
jne 0x402f47
mov dword [esp], esi
call sym._MsiCloseHandle_4
sub esp, 4
jmp 0x401f05
test byte [section..data], 1
je 0x401f13
mov dword [esp + 0xc], str.GUI_operation_is_not_currently_supported._n
mov dword [esp + 8], str.valid_state
mov dword [esp + 4], 0x405000
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x401f13
test byte [section..data], 2
je 0x401f13
mov ebx, dword [ebp - 0x798]
test ebx, ebx
je 0x403726
mov eax, ebx
shr eax, 0x10
je 0x403358
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, str._invalid_
test edx, edx
jne 0x402c40
cmp word [ebx], 0
je 0x40373a
mov edi, edx
lea edx, [edx + 1]
cmp word [ebx + edi*2 + 2], 0
jne 0x4021d1
mov eax, 0x224c
mov word [ebp - 0x418], ax
lea eax, [ebp - 0x416]
jmp 0x402229
cmp dx, 9
je 0x402fd6
cmp dx, 0xa
jne 0x40323d
mov ecx, 0x6e5c
add eax, 2
mov word [eax - 2], cx
sub edi, 1
jb 0x4036f9
lea edx, [ebp - 0x2f6]
cmp edx, eax
jb 0x402c14
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x402ffa
jbe 0x4021f2
cmp dx, 0x22
je 0x40300d
cmp dx, 0x5c
jne 0x40336d
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x402212
mov dword [esp + 0xc], str.Failed_to_open__Streams_table._n
jmp 0x4020b6
mov eax, dword [ebp - 0x774]
mov edi, str._s.idt
mov ebx, dword [esi + 8]
mov dword [esp + 4], 0x104
test eax, eax
mov eax, str._.8s.idt
mov dword [esp + 0xc], ebx
cmove eax, edi
lea edi, [ebp - 0x418]
mov dword [esp], edi
mov dword [esp + 8], eax
call sym._swprintf.constprop.0
mov dword [esp + 0xc], edi
mov eax, dword [ebp - 0x794]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x790]
mov dword [esp], eax
call sym._MsiDatabaseExportW_16
sub esp, 0x10
mov edi, eax
test eax, eax
jne 0x402db5
mov esi, dword [esi]
lea eax, [ebp - 0x758]
cmp esi, eax
jne 0x401f85
jmp 0x401b26
mov dword [esp + 8], edi
mov dword [esp + 4], 2
mov dword [esp], esi
call sym._MsiRecordSetStreamW_12
sub esp, 0xc
test eax, eax
je 0x402a13
test byte [section..data], 2
je 0x402138
mov dword [esp + 0xc], str.Failed_to_add_stream_to_MSI_record._n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402138
test byte [section..data], 2
jne 0x402aa0
xor ebx, ebx
jmp 0x401b90
mov edi, dword [ebp - 0x768]
lea eax, [ebp - 0x768]
cmp edi, eax
je 0x401b34
lea esi, [esi]
mov esi, dword [edi + 8]
mov dword [ebp - 0x7a0], 0
mov dword [ebp - 0x79c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0x40000000
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_CreateFileW]
mov dword [ebp - 0x7a8], eax
sub esp, 0x1c
cmp eax, 0xffffffff
je 0x40244b
lea eax, [ebp - 0x7a0]
mov dword [esp + 4], str.SELECT_Data_FROM__Streams_WHERE_Name___
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x790]
mov dword [esp], eax
call sym._MsiDatabaseOpenViewW_12
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x402496
test byte [section..data], 2
jne 0x402538
mov eax, dword [ebp - 0x79c]
test eax, eax
jne 0x40246b
mov eax, dword [ebp - 0x7a0]
test eax, eax
jne 0x402480
mov eax, dword [ebp - 0x7a8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
test ebx, ebx
jne 0x401f13
mov edi, dword [edi]
lea eax, [ebp - 0x768]
cmp edi, eax
jne 0x402370
jmp 0x401b34
test byte [section..data], 2
jne 0x402579
mov eax, dword [ebp - 0x79c]
test eax, eax
je 0x402a88
mov ebx, 2
mov dword [esp], eax
call sym._MsiCloseHandle_4
mov eax, dword [ebp - 0x7a0]
sub esp, 4
test eax, eax
je 0x40248b
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
cmp dword [ebp - 0x7a8], 0xffffffff
jne 0x40241c
jmp 0x40242e
mov dword [esp], 1
call sym._MsiCreateRecord_4
mov dword [ebp - 0x79c], eax
sub esp, 4
test eax, eax
jne 0x4024e1
test byte [section..data], 2
jne 0x402efd
mov eax, dword [ebp - 0x7a0]
test eax, eax
jne 0x402acb
mov eax, dword [ebp - 0x7a8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
jmp 0x401f13
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov dword [esp], eax
call sym._MsiRecordSetStringW_12
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x4029b8
test byte [section..data], 2
je 0x402408
mov dword [esp + 0xc], str.Failed_to_add_stream_filename_to_MSI_record._n
mov dword [esp + 8], str.extract_stream
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402408
mov dword [esp + 0xc], str.Failed_to_open__Streams_table._n
mov dword [esp + 8], str.extract_stream
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402408
lea eax, [ebp - 0x798]
call sym._import_tables
test eax, eax
jne 0x401b42
jmp 0x401f13
test esi, esi
je 0x402bb9
mov eax, esi
shr eax, 0x10
je 0x403150
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x402bbe
cmp word [esi], 0
je 0x4038ac
mov ebx, eax
lea eax, [eax + 1]
cmp word [esi + ebx*2 + 2], 0
jne 0x4025b7
mov eax, 0x224c
mov word [ebp - 0x418], ax
lea eax, [ebp - 0x416]
jmp 0x40260f
cmp dx, 9
je 0x402f83
cmp dx, 0xa
jne 0x40317a
mov ecx, 0x6e5c
add eax, 2
mov word [eax - 2], cx
sub ebx, 1
jb 0x40371b
lea edx, [ebp - 0x2f6]
cmp edx, eax
jb 0x4032a5
movzx edx, word [esi]
add esi, 2
cmp dx, 0xd
je 0x402f94
jbe 0x4025d8
cmp dx, 0x22
je 0x402f70
cmp dx, 0x5c
jne 0x403167
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x4025f8
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x7a4]
mov dword [esp], eax
call sym._MsiViewExecute_8
sub esp, 8
test eax, eax
jne 0x402b83
mov dword [ebp - 0x7a8], esi
lea ebx, [ebp - 0x7a0]
lea edi, [ebp - 0x618]
jmp 0x402691
mov eax, dword [ebp - 0x7a0]
mov dword [esp], eax
call sym._MsiCloseHandle_4
sub esp, 4
test eax, eax
jne 0x4036b8
mov dword [ebp - 0x7a0], 0
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x7a4]
mov dword [esp], eax
call sym._MsiViewFetch_8
sub esp, 8
cmp eax, 0x103
je 0x403620
test eax, eax
jne 0x4034c6
mov dword [ebp - 0x79c], 0x100
lea eax, [ebp - 0x79c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x7a0]
mov dword [esp], eax
call sym._MsiRecordGetStringW_16
sub esp, 0x10
test eax, eax
jne 0x403490
mov eax, dword [ebp - 0x774]
mov esi, str._s.idt
mov dword [esp + 0xc], edi
mov dword [esp + 4], 0x104
test eax, eax
mov eax, str._.8s.idt
cmove eax, esi
lea esi, [ebp - 0x418]
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._swprintf.constprop.0
mov dword [esp + 0xc], esi
mov eax, dword [ebp - 0x794]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x790]
mov dword [esp], eax
call sym._MsiDatabaseExportW_16
sub esp, 0x10
mov ecx, eax
test eax, eax
je 0x402678
test byte [section..data], 2
je 0x401fe6
mov eax, edi
mov dword [ebp - 0x7a8], ecx
shr eax, 0x10
je 0x4033ec
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov ecx, dword [ebp - 0x7a8]
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x402ecc
cmp word [ebp - 0x618], 0
je 0x4039b9
mov ebx, eax
lea eax, [eax + 1]
cmp word [edi + ebx*2 + 2], 0
jne 0x4027af
mov esi, 0x224c
mov dword [ebp - 0x7a8], ecx
lea eax, [ebp - 0x742]
mov word [ebp - 0x744], si
mov esi, edi
movzx edi, word [str._r_]
jmp 0x402816
cmp dx, 9
je 0x403020
cmp dx, 0xa
jne 0x403384
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
sub ebx, 1
jb 0x4034fc
lea edx, [ebp - 0x622]
cmp edx, eax
jb 0x402e8c
movzx edx, word [esi]
add esi, 2
cmp dx, 0xd
je 0x403031
jbe 0x4027df
cmp dx, 0x22
je 0x402fe7
cmp dx, 0x5c
jne 0x4031cb
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x4027ff
mov dword [esp + 4], 0x5c
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
mov edx, eax
lea eax, [eax + 2]
test edx, edx
cmove eax, edi
jmp 0x40210c
lea ebx, [ebp - 0x418]
mov esi, dword [ebp - 0x760]
mov dword [ebp - 0x7a8], ebx
lea ebx, [ebp - 0x760]
cmp esi, ebx
je 0x401b56
mov eax, dword [ebp - 0x7a8]
mov ebx, dword [esi + 8]
mov dword [ebp - 0x418], 0
mov dword [esp + 4], str.DELETE_FROM__Streams_WHERE_Name___
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x790]
mov dword [esp], eax
call sym._MsiDatabaseOpenViewW_12
sub esp, 0xc
test eax, eax
je 0x4028e0
test byte [section..data], 2
je 0x401f05
mov dword [esp + 0xc], str.Failed_to_open__Streams_table._n
mov dword [esp + 8], str.kill_stream
jmp 0x4020be
mov dword [esp], 1
call sym._MsiCreateRecord_4
sub esp, 4
mov edi, eax
test eax, eax
jne 0x40290c
test byte [section..data], 2
je 0x401f05
mov dword [esp + 0xc], str.Failed_to_create_MSI_record._n
jmp 0x4028d3
mov dword [esp + 8], ebx
mov dword [esp + 4], 1
mov dword [esp], eax
call sym._MsiRecordSetStringW_12
sub esp, 0xc
test eax, eax
je 0x402944
test byte [section..data], 2
jne 0x402b24
mov dword [esp], edi
call sym._MsiCloseHandle_4
sub esp, 4
jmp 0x401f05
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x418]
mov dword [esp], eax
call sym._MsiViewExecute_8
sub esp, 8
test eax, eax
jne 0x402b4d
mov dword [esp], edi
call sym._MsiCloseHandle_4
mov eax, dword [ebp - 0x418]
sub esp, 4
test eax, eax
jne 0x403332
mov esi, dword [esi]
lea eax, [ebp - 0x760]
cmp esi, eax
jne 0x40288a
mov eax, dword [ebp - 0x790]
jmp 0x401b56
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 eax, dword [ebp - 0x79c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x7a0]
mov dword [esp], eax
call sym._MsiViewExecute_8
sub esp, 8
mov ebx, eax
test eax, eax
je 0x40303c
test byte [section..data], 2
je 0x402408
mov dword [esp + 0xc], str.Failed_to_query_stream_from__Streams_table._n
mov dword [esp + 8], str.extract_stream
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402408
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x418]
mov dword [esp], eax
call sym._MsiViewExecute_8
sub esp, 8
test eax, eax
jne 0x403430
mov dword [esp], esi
call sym._MsiCloseHandle_4
mov eax, dword [ebp - 0x418]
sub esp, 4
test eax, eax
jne 0x403409
mov ebx, dword [ebx]
lea eax, [ebp - 0x770]
cmp ebx, eax
jne 0x401ec0
jmp 0x401b18
cmp dword [ebp - 0x78c], 0
jne 0x401c95
mov edx, dword [ebp - 0x784]
or edx, dword [ebp - 0x788]
je 0x401e67
jmp 0x401c95
mov eax, dword [ebp - 0x7a0]
test eax, eax
je 0x401f13
mov ebx, 2
jmp 0x402480
mov dword [esp + 0xc], str.Failed_to_commit_changes_to_database._n
xor ebx, ebx
mov dword [esp + 8], str.close_database
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x401b90
mov dword [esp], eax
call sym._MsiViewClose_4
mov eax, dword [ebp - 0x7a8]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
jmp 0x401f13
mov dword [esp + 0xc], str.Failed_to_open__Tables_table._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
mov eax, dword [ebp - 0x7a4]
test eax, eax
je 0x401f13
jmp 0x401ff4
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], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402934
test byte [section..data], 2
je 0x402934
mov dword [esp + 0xc], str.Failed_to_delete_stream_from__Streams_table._n
mov dword [esp + 8], str.kill_stream
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402934
test byte [section..data], 2
je 0x401fe6
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], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x401fe6
mov edx, str._null_
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Failed_to_open_destination_file__s._n
mov dword [esp + 8], str.extract_stream
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402458
mov dword [esp + 0xc], str.No_table_folder_specified___f_option_._n
mov dword [esp + 8], str.valid_state
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x401e1e
mov byte [eax], 0x22
test edi, edi
je 0x4036fc
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x418]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_open_database__s__error__d_n
mov dword [esp + 8], 0x4079f8
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
test byte [section..data], 2
je 0x401f13
mov ebx, dword [ebp - 0x798]
test ebx, ebx
je 0x403730
mov eax, ebx
shr eax, 0x10
je 0x4033d5
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x402d7a
cmp word [ebx], 0
je 0x403758
mov esi, eax
lea eax, [eax + 1]
cmp word [ebx + esi*2 + 2], 0
jne 0x402cbd
mov edi, 0x224c
lea eax, [ebp - 0x416]
mov word [ebp - 0x418], di
movzx edi, word [str._r_]
jmp 0x402d18
cmp dx, 9
je 0x402fc5
cmp dx, 0xa
jne 0x4031ec
mov ecx, 0x6e5c
add eax, 2
mov word [eax - 2], cx
sub esi, 1
jb 0x4036ee
lea edx, [ebp - 0x2f6]
cmp edx, eax
jb 0x402d4c
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x402fa7
jbe 0x402ce5
cmp dx, 0x22
je 0x402fb2
cmp dx, 0x5c
jne 0x40328e
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x402d05
mov byte [eax], 0x22
test esi, esi
je 0x4036f1
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x418]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Failed_to_open_database__s._n
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
mov eax, dword [ebp - 0x790]
test eax, eax
jne 0x401f21
jmp 0x401e3d
test byte [section..data], 2
je 0x401f13
test ebx, ebx
je 0x40387a
mov eax, ebx
shr eax, 0x10
je 0x403704
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x403301
cmp word [ebx], 0
je 0x4032d8
mov esi, eax
lea eax, [eax + 1]
cmp word [ebx + esi*2 + 2], 0
jne 0x402e00
mov eax, 0x224c
mov word [ebp - 0x618], ax
lea eax, [ebp - 0x616]
jmp 0x402e58
cmp dx, 9
je 0x40355e
cmp dx, 0xa
jne 0x40350d
mov ecx, 0x6e5c
add eax, 2
mov word [eax - 2], cx
sub esi, 1
jb 0x4039f3
lea edx, [ebp - 0x4f6]
cmp edx, eax
jb 0x4039d7
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x40356f
jbe 0x402e21
cmp dx, 0x22
je 0x40347d
cmp dx, 0x5c
jne 0x403466
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x402e41
mov byte [eax], 0x22
mov ecx, dword [ebp - 0x7a8]
test ebx, ebx
je 0x403505
mov ebx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], bx
lea eax, [ebp - 0x744]
mov dword [ebp - 0x7a8], ecx
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov ecx, dword [ebp - 0x7a8]
mov edx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Failed_to_export_table__s__error__d._n
mov dword [esp + 8], str.export_table
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x401fe6
mov dword [esp + 0xc], str.Failed_to_create_MSI_record._n
mov dword [esp + 8], str.extract_stream
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
mov eax, dword [ebp - 0x79c]
test eax, eax
jne 0x4031e2
mov eax, dword [ebp - 0x7a0]
mov ebx, 0xe
test eax, eax
je 0x40241c
jmp 0x402480
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], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402138
movzx edx, word [0x407a28]
add eax, 2
mov word [eax - 2], dx
jmp 0x4025f8
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x4025f8
movzx edx, word [str._r_]
add eax, 2
mov word [eax - 2], dx
jmp 0x4025f8
mov word [eax], di
add eax, 2
jmp 0x402d05
movzx edx, word [0x407a28]
add eax, 2
mov word [eax - 2], dx
jmp 0x402d05
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x402d05
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x402212
movzx edx, word [0x407a28]
add eax, 2
mov word [eax - 2], dx
jmp 0x4027ff
movzx edx, word [str._r_]
add eax, 2
mov word [eax - 2], dx
jmp 0x402212
movzx edx, word [0x407a28]
add eax, 2
mov word [eax - 2], dx
jmp 0x402212
mov ecx, 0x745c
add eax, 2
mov word [eax - 2], cx
jmp 0x4027ff
mov word [eax], di
add eax, 2
jmp 0x4027ff
mov eax, dword [ebp - 0x79c]
mov dword [esp], eax
call sym._MsiCloseHandle_4
lea eax, [ebp - 0x79c]
mov dword [ebp - 0x79c], 0
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x7a0]
mov dword [esp], eax
call sym._MsiViewFetch_8
sub esp, 8
mov ebx, eax
test eax, eax
jne 0x403582
mov dword [ebp - 0x744], 0x400
mov ecx, 0x400
mov dword [ebp - 0x7ac], eax
jmp 0x403110
lea esi, [ebp - 0x744]
lea ebx, [ebp - 0x418]
mov dword [esp + 4], 1
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp], eax
call sym._MsiRecordReadStream_16
sub esp, 0x10
mov esi, eax
test eax, eax
jne 0x4035eb
lea eax, [ebp - 0x618]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x744]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x7a8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_WriteFile]
sub esp, 0x14
test eax, eax
je 0x4035b8
mov ecx, dword [ebp - 0x744]
cmp ecx, dword [ebp - 0x618]
jne 0x4035b8
mov eax, dword [ebp - 0x79c]
cmp ecx, 0x400
je 0x403093
mov ebx, dword [ebp - 0x7ac]
test eax, eax
jne 0x40246b
mov ebx, dword [ebp - 0x7a0]
test ebx, ebx
je 0x40241c
mov eax, ebx
xor ebx, ebx
jmp 0x402480
mov dword [esp + 4], esi
mov dword [esp], str._04x
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x402bbe
lea ecx, [edx - 0x20]
cmp cx, 0x5e
ja 0x40317a
mov byte [eax], dl
add eax, 1
jmp 0x4025f8
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 0x4025f8
lea ecx, [edx - 0x20]
cmp cx, 0x5e
ja 0x403384
mov byte [eax], dl
add eax, 1
jmp 0x4027ff
mov ebx, 0xe
jmp 0x40246b
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 0x402d05
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 0x402212
lea ecx, [edx - 0x20]
cmp cx, 0x5e
ja 0x4031ec
mov byte [eax], dl
add eax, 1
jmp 0x402d05
mov byte [eax], 0x22
test ebx, ebx
je 0x40371e
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x418]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
jmp 0x402bbe
mov word [ebp - 0x618], 0x224c
lea edx, [ebp - 0x615]
mov byte [ebp - 0x616], 0x22
lea eax, [ebp - 0x618]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Failed_to_export_table__s__error__d._n
mov dword [esp + 8], str.export_table
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x401f13
mov dword [esp], eax
call sym._MsiViewClose_4
mov esi, dword [esi]
lea eax, [ebp - 0x760]
sub esp, 4
cmp esi, eax
jne 0x40288a
jmp 0x40298a
mov dword [esp + 4], ebx
mov dword [esp], str._04x
call sym._wine_dbg_sprintf.constprop.0
jmp 0x402c40
lea ecx, [edx - 0x20]
cmp cx, 0x5e
ja 0x40323d
mov byte [eax], dl
add eax, 1
jmp 0x402212
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 0x4027ff
mov dword [esp + 4], ebx
mov dword [esp], str._04x
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x402d7a
mov dword [esp + 4], edi
mov dword [esp], str._04x
call sym._wine_dbg_sprintf.constprop.0
mov ecx, dword [ebp - 0x7a8]
mov edx, eax
jmp 0x402ecc
mov dword [esp], eax
call sym._MsiViewClose_4
mov ebx, dword [ebx]
lea eax, [ebp - 0x770]
sub esp, 4
cmp ebx, eax
jne 0x401ec0
jmp 0x401b18
test byte [section..data], 2
je 0x402138
mov dword [esp + 0xc], str.Failed_to_add_stream_to__Streams_table._n
mov dword [esp + 8], str.add_stream
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402138
lea ecx, [edx - 0x20]
cmp cx, 0x5e
ja 0x40350d
mov byte [eax], dl
add eax, 1
jmp 0x402e41
movzx edx, word [0x407a28]
add eax, 2
mov word [eax - 2], dx
jmp 0x402e41
test byte [section..data], 2
je 0x401fe6
mov dword [esp + 0xc], str.Failed_to_retrieve_name_string._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x401fe6
test byte [section..data], 2
je 0x401fe6
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], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x401fe6
mov byte [eax], 0x22
mov ecx, dword [ebp - 0x7a8]
lea edx, [eax + 1]
jmp 0x402ead
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 0x402e41
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x402e41
movzx edx, word [str._r_]
add eax, 2
mov word [eax - 2], dx
jmp 0x402e41
test byte [section..data], 2
je 0x402408
mov dword [esp + 0xc], str.Failed_to_query_row_from__Streams_table._n
mov dword [esp + 8], str.extract_stream
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402408
test byte [section..data], 2
jne 0x403a08
mov eax, dword [ebp - 0x79c]
test eax, eax
jne 0x4039fe
mov eax, dword [ebp - 0x7a0]
mov ebx, 0x1d
test eax, eax
je 0x40241c
jmp 0x402480
test byte [section..data], 2
jne 0x403a38
mov eax, dword [ebp - 0x79c]
test eax, eax
jne 0x403a31
mov eax, dword [ebp - 0x7a0]
mov ebx, esi
test eax, eax
je 0x40241c
jmp 0x402480
mov ecx, dword [ebp - 0x774]
mov edx, str._.8s.idt
mov eax, str._s.idt
lea edi, [ebp - 0x418]
mov esi, dword [ebp - 0x7a8]
mov dword [esp], edi
test ecx, ecx
mov dword [esp + 0xc], str._SummaryInformation
cmovne eax, edx
mov dword [esp + 4], 0x104
mov dword [esp + 8], eax
call sym._swprintf.constprop.0
mov dword [esp + 0xc], edi
mov eax, dword [ebp - 0x794]
mov dword [esp + 4], str._SummaryInformation
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x790]
mov dword [esp], eax
call sym._MsiDatabaseExportW_16
sub esp, 0x10
mov edi, eax
test eax, eax
jne 0x4037b7
mov eax, dword [ebp - 0x7a4]
test eax, eax
je 0x4022cd
mov dword [esp], eax
call sym._MsiViewClose_4
sub esp, 4
test eax, eax
je 0x4022cd
jmp 0x402007
test byte [section..data], 2
je 0x401fe6
mov dword [esp + 0xc], str.Failed_to_close_record_handle._n
mov dword [esp + 8], str.export_all_tables
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x401fe6
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x402d67
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x402c2f
mov dword [esp + 4], ebx
mov dword [esp], str._04x
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x403301
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x4032c0
mov eax, str._null_
jmp 0x402c40
mov edx, str._null_
jmp 0x402d7a
mov eax, 0x224c
mov byte [ebp - 0x416], 0x22
lea edx, [ebp - 0x415]
mov word [ebp - 0x418], ax
jmp 0x402c2f
mov eax, 0x224c
mov byte [ebp - 0x416], 0x22
lea edx, [ebp - 0x415]
mov word [ebp - 0x418], ax
jmp 0x402d67
test byte [section..data], 2
jne 0x403791
mov dword [esp], 1
call dword [sym.imp.ucrtbase.dll_exit]
call sym._list_append.part.0
mov dword [esp + 0xc], str.Out_of_memory_for_list._n
mov dword [esp + 8], str.list_append
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x40377f
test byte [section..data], 2
je 0x401fe6
mov eax, str._SummaryInformation
shr eax, 0x10
je 0x403896
mov dword [esp + 4], 0xffffffff
mov dword [esp], str._SummaryInformation
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
push edx
push edx
test eax, eax
jne 0x403884
mov ebx, eax
lea eax, [eax + 1]
cmp word [ebx + ebx + 0x407332], 0
jne 0x4037f1
mov word [ebp - 0x618], 0x224c
lea eax, [ebp - 0x616]
mov esi, str._SummaryInformation
jmp 0x40384a
cmp dx, 9
je 0x40394a
cmp dx, 0xa
jne 0x4038f9
mov word [eax], 0x6e5c
add eax, 2
sub ebx, 1
jb 0x4038f1
lea edx, [ebp - 0x4f6]
cmp edx, eax
jb 0x4038ca
movzx edx, word [esi]
add esi, 2
cmp dx, 0xd
je 0x403957
jbe 0x403817
cmp dx, 0x22
je 0x40397d
cmp dx, 0x5c
jne 0x40396a
mov word [eax], 0x5c5c
add eax, 2
jmp 0x403833
mov edx, str._null_
jmp 0x403301
mov eax, str._invalid_
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
jmp 0x402ed4
mov dword [esp + 4], str._SummaryInformation
mov dword [esp], str._04x
call sym._wine_dbg_sprintf.constprop.0
jmp 0x403889
mov eax, 0x224c
mov byte [ebp - 0x416], 0x22
lea edx, [ebp - 0x415]
mov word [ebp - 0x418], ax
jmp 0x4032c0
mov byte [eax], 0x22
test ebx, ebx
je 0x4038f4
mov word [eax + 1], 0x2e2e
lea edx, [eax + 4]
mov byte [eax + 3], 0x2e
lea eax, [ebp - 0x618]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
jmp 0x403889
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x4038de
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 0x403833
mov word [eax], 0x745c
add eax, 2
jmp 0x403833
movzx edx, word [str._r_]
add eax, 2
mov word [eax - 2], dx
jmp 0x403833
lea ecx, [edx - 0x20]
cmp cx, 0x5e
ja 0x4038f9
mov byte [eax], dl
add eax, 1
jmp 0x403833
movzx edx, word [0x407a28]
add eax, 2
mov word [eax - 2], dx
jmp 0x403833
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], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x401ab9
mov edi, 0x224c
mov byte [ebp - 0x742], 0x22
lea edx, [ebp - 0x741]
mov word [ebp - 0x744], di
jmp 0x402ead
mov byte [eax], 0x22
test esi, esi
je 0x4039f6
mov edx, 0x2e2e
mov byte [eax + 3], 0x2e
mov word [eax + 1], dx
lea edx, [eax + 4]
jmp 0x4032ee
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x4032ee
mov ebx, 0x1d
jmp 0x40246b
mov dword [esp + 0xc], str.Failed_to_write_stream_to_destination_file._n
mov dword [esp + 8], str.extract_stream
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x4035c5
mov ebx, esi
jmp 0x40246b
mov dword [esp + 0xc], str.Failed_to_read_stream_from__Streams_table._n
mov dword [esp + 8], str.extract_stream
mov dword [esp + 4], 0x405000
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x4035f8