Function at 0x5105f0
Capabilities:
Delete file
Get common file path
Write file on windows

Disassembly:
push ebp
mov eax, 0x6f
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x18c
mov word [ebp - 0x156], ax
mov dword [esp], 0
mov dword [ebp - 0x15a], 0x6c6c6568
call sub.msi.dll_MsiRecordGetFieldCount
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x3f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.field_count_for_invalid_record_not__1_n
sete al
mov dword [esp], eax
mov ebx, dword fs:[0x18]
call fcn.0052b0e0
mov dword [ebx + 0x34], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.msi.dll_MsiRecordIsNull
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x42
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.invalid_handle_not_considered_to_be_non_null..._n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x43
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov dword [esp + 4], str.MsiRecordIsNull_set_LastError_n
mov edx, dword [ebx + 0x34]
xor eax, eax
test edx, edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x45
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x80000000
mov dword [esp + 4], str.got_integer_from_invalid_record_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.msi.dll_MsiRecordSetInteger
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x47
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 6
mov dword [esp + 4], str.MsiRecordSetInteger_returned_wrong_error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
call sub.msi.dll_MsiRecordSetInteger
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x49
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 6
mov dword [esp + 4], str.MsiRecordSetInteger_returned_wrong_error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [ebx + 0x34], 0
mov dword [esp], 0xffffffff
call sub.msi.dll_MsiCreateRecord
sub esp, 4
mov esi, eax
mov dword [esp + 4], 0x4c
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.created_record_with__1_elements_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], 0x10000
call sub.msi.dll_MsiCreateRecord
sub esp, 4
mov esi, eax
mov dword [esp + 4], 0x4e
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.created_record_with_0x10000_elements_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x50
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov dword [esp + 4], str.MsiCreateRecord_set_last_error_n
mov ecx, dword [ebx + 0x34]
xor eax, eax
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], 0
call sub.msi.dll_MsiRecordClearData
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x52
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 6
mov dword [esp + 4], str.MsiRecordClearData_returned_wrong_error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.msi.dll_MsiRecordDataSize
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x54
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.MsiRecordDataSize_returned_wrong_error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], 0
call sub.msi.dll_MsiCreateRecord
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x59
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.couldnt_create_record_with_zero_elements_n
setne al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordGetFieldCount
sub esp, 4
mov esi, eax
mov dword [esp + 4], 0x5b
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.field_count_should_be_zero_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordIsNull
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x5d
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov dword [esp], esi
mov dword [esp + 4], str.new_record_wasnt_null_n
call fcn.0052b0e0
mov dword [esp + 4], 1
mov dword [esp], ebx
call sub.msi.dll_MsiRecordIsNull
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x5f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov dword [esp], esi
mov dword [esp + 4], str.out_of_range_record_wasnt_null_n
call fcn.0052b0e0
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sub.msi.dll_MsiRecordIsNull
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x61
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov dword [esp], esi
mov dword [esp + 4], str.out_of_range_record_wasnt_null_n
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordDataSize
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x63
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.size_of_null_record_is_0_n
sete al
mov esi, 0x78
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov word [ebp - 0x154], si
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x67
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_get_null_string_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x68
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov edi, dword [ebp - 0x164]
xor eax, eax
mov dword [esp + 4], str.null_string_too_long_n
test edi, edi
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x69
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp byte [ebp - 0x154], 0
mov dword [esp + 4], str.null_string_not_set_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordSetInteger
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x6d
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_integer_at_0_to_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordIsNull
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x6f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.new_record_is_null_after_setting_an_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordDataSize
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x71
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 4
mov dword [esp + 4], str.size_of_integer_record_is_4_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordSetInteger
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x73
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_integer_at_0_to_1_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp], ebx
call sub.msi.dll_MsiRecordSetInteger
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x75
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x57
mov dword [esp + 4], str.set_integer_at_1_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sub.msi.dll_MsiRecordSetInteger
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x77
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x57
mov dword [esp + 4], str.set_integer_at__1_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordIsNull
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x79
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.new_record_is_null_after_setting_an_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x7b
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 1
mov dword [esp + 4], str.failed_to_get_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x7f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_null_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordIsNull
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x81
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 1
mov dword [esp + 4], str.null_string_not_null_field_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordDataSize
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x83
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.size_of_string_record_is_strlen_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov byte [ebp - 0x154], 0
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x87
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_get_string_at_0_n
sete al
lea esi, [ebp - 0x14a]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x88
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp byte [ebp - 0x154], 0
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_string_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x89
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov edx, dword [ebp - 0x164]
xor eax, eax
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_length_n
test edx, edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
xor ecx, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov word [ebp - 0x14a], cx
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordGetStringW
sub esp, 0x10
mov edi, eax
mov dword [esp + 4], 0x8d
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Failed_to_get_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x8e
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp word [ebp - 0x14a], 0
mov dword [esp + 4], str.MsiRecordGetStringW_returned_the_wrong_string_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x8f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov edi, dword [ebp - 0x164]
xor eax, eax
mov dword [esp + 4], str.MsiRecordGetStringW_returned_the_wrong_length_n
test edi, edi
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0x587d97
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0x91
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Failed_to_set_empty_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordIsNull
sub esp, 8
mov edi, eax
mov dword [esp + 4], 0x93
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp edi, 1
mov dword [esp + 4], str.null_string_not_null_field_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordDataSize
sub esp, 8
mov edi, eax
mov dword [esp + 4], 0x95
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 4], str.size_of_string_record_is_strlen_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov byte [ebp - 0x154], 0
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov edi, eax
mov dword [esp + 4], 0x99
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Failed_to_get_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x9a
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp byte [ebp - 0x154], 0
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_string_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x9b
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov edx, dword [ebp - 0x164]
xor eax, eax
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_length_n
test edx, edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
xor ecx, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov word [ebp - 0x14a], cx
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordGetStringW
sub esp, 0x10
mov edi, eax
mov dword [esp + 4], 0x9f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Failed_to_get_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xa0
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp word [ebp - 0x14a], 0
mov dword [esp + 4], str.MsiRecordGetStringW_returned_the_wrong_string_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xa1
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov edi, dword [ebp - 0x164]
xor eax, eax
mov dword [esp + 4], str.MsiRecordGetStringW_returned_the_wrong_length_n
test edi, edi
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordSetInteger
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0xa5
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Failed_to_set_integer_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordIsNull
sub esp, 8
mov edi, eax
mov dword [esp + 4], 0xa7
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 4], str.expected_field_to_be_non_null_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0x80000000
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordSetInteger
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0xa9
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Failed_to_set_integer_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordIsNull
sub esp, 8
mov edi, eax
mov dword [esp + 4], 0xab
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp edi, 1
mov dword [esp + 4], str.expected_field_to_be_null_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov edi, eax
mov dword [esp + 4], 0xae
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Failed_to_get_string_at_0_n
sete al
lea edi, [ebp - 0x15a]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xaf
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp byte [ebp - 0x154], 0
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_string_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xb0
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov edx, dword [ebp - 0x164]
xor eax, eax
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_length_n
test edx, edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov dword [ebp - 0x16c], eax
mov dword [esp + 4], 0xb4
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov eax, dword [ebp - 0x16c]
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov dword [ebp - 0x16c], eax
mov dword [esp + 4], 0xb6
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov eax, dword [ebp - 0x16c]
mov dword [esp + 4], str.should_get_invalid_integer_n
cmp eax, 0x80000000
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordDataSize
sub esp, 8
mov dword [ebp - 0x16c], eax
mov dword [esp + 4], 0xb8
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov eax, dword [ebp - 0x16c]
mov dword [esp + 4], str.size_of_string_record_is_strlen_n
cmp eax, 5
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov byte [ebp - 0x154], 0
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov dword [ebp - 0x16c], eax
mov dword [esp + 4], 0xbc
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov eax, dword [ebp - 0x16c]
mov dword [esp + 4], str.Failed_to_get_string_at_0_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xbd
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov edx, dword [sym.imp.msvcrt.dll_strcmp]
lea eax, [ebp - 0x154]
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [ebp - 0x170], edx
call edx
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_string_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xbe
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 5
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_length_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov byte [ebp - 0x154], 0
mov dword [ebp - 0x164], 4
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov dword [ebp - 0x16c], eax
mov dword [esp + 4], 0xc2
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov eax, dword [ebp - 0x16c]
mov dword [esp + 4], str.small_buffer_should_yield_ERROR_MORE_DATA_n
cmp eax, 0xea
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xc3
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 5
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_length_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xc4
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
lea eax, [ebp - 0x154]
mov dword [esp + 4], edi
mov dword [esp + 8], 3
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_strncmp]
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_string_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xc5
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp byte [ebp - 0x151], 0
mov dword [esp + 4], str.string_wasnt_nul_terminated_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov byte [ebp - 0x154], 0
mov dword [ebp - 0x164], 6
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov dword [ebp - 0x16c], eax
mov dword [esp + 4], 0xca
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov eax, dword [ebp - 0x16c]
mov dword [esp + 4], str.wrong_error_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xcb
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 5
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_length_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xcc
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
lea eax, [ebp - 0x154]
mov edx, dword [ebp - 0x170]
mov dword [esp + 4], edi
mov dword [esp], eax
call edx
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_string_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0
mov dword [esp], ebx
mov dword [ebp - 0x14a], 0
mov dword [ebp - 0x146], 0
mov dword [ebp - 0x142], 0
mov dword [ebp - 0x13e], 0
mov dword [ebp - 0x13a], 0
mov dword [ebp - 0x164], 5
call sub.msi.dll_MsiRecordGetStringW
sub esp, 0x10
mov edi, eax
mov dword [esp + 4], 0xd2
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp edi, 0xea
mov dword [esp + 4], str.wrong_error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xd3
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 5
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_length_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xd4
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov eax, dword [str.hello]
cmp dword [ebp - 0x14a], eax
je 0x512f94
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_string_n
mov edi, 0x588011
mov dword [esp], eax
call fcn.0052b0e0
mov eax, 0x78
mov dword [esp], ebx
mov word [ebp - 0x14a], ax
lea eax, [ebp - 0x164]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0
mov dword [ebp - 0x164], 0
call sub.msi.dll_MsiRecordGetStringW
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0xd9
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0xea
mov dword [esp + 4], str.wrong_error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xda
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 5
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_length_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xdb
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp word [ebp - 0x14a], 0x78
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_string_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
xor eax, eax
mov dword [esp], ebx
mov word [ebp - 0x14c], ax
lea eax, [ebp - 0x164]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x164], 5
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0xe0
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0xea
mov dword [esp + 4], str.wrong_error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xe1
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 5
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_length_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xe2
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov eax, dword [ebp - 0x15a]
cmp dword [ebp - 0x154], eax
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_string_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [ebp - 0x164], 0
mov byte [ebp - 0x154], 0x78
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0xe7
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0xea
mov dword [esp + 4], str.wrong_error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xe8
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 5
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_length_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xe9
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp byte [ebp - 0x154], 0x78
mov dword [esp + 4], str.MsiRecordGetStringA_returned_the_wrong_string_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordClearData
sub esp, 4
mov esi, eax
mov dword [esp + 4], 0xed
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_clear_record_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
call sub.msi.dll_MsiRecordClearData
sub esp, 4
mov esi, eax
mov dword [esp + 4], 0xef
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_clear_record_again_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordIsNull
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0xf1
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov dword [esp], esi
mov dword [esp + 4], str.cleared_record_wasnt_null_n
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], 0x587f00
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0xf5
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0xf7
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x2a
mov dword [esp + 4], str.should_get_invalid_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], 0x587f03
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0xf9
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0xfb
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0xffffffd6
mov dword [esp + 4], str.should_get_invalid_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], 0x587f07
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0xfd
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0xff
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x80000000
mov dword [esp + 4], str.should_get_invalid_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], 0x587f0b
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x101
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x103
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x80000000
mov dword [esp + 4], str.should_get_invalid_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], str.42.0
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x105
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x107
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x80000000
mov dword [esp + 4], str.should_get_invalid_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], str.0x42
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x109
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x10b
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x80000000
mov dword [esp + 4], str.should_get_invalid_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], str.1000000000000000
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x10d
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x10f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0xa4c68000
mov dword [esp + 4], str.should_get_truncated_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], str.2147483647
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x111
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x113
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x7fffffff
mov dword [esp + 4], str.should_get_maxint_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], str._2147483647
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x115
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x117
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x80000001
mov dword [esp + 4], str.should_get__maxint_1_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], str.4294967297
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x119
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x11b
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 1
mov dword [esp + 4], str.should_get_one_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], 0x587fa3
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x11d
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x11f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x80000000
mov dword [esp + 4], str.should_get_zero_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], 0x587d97
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x121
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x123
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x80000000
mov dword [esp + 4], str.should_get_zero_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], 0x587fb8
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetStringA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x125
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_string_at_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordGetInteger
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x127
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x80000000
mov dword [esp + 4], str.should_get_zero_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], 0x20
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetInteger
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x12b
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_integer_at_0_to_32_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [ebp - 0x164], 1
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x12e
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_get_string_from_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x12f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 2
mov dword [esp + 4], str.length_wrong_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov byte [ebp - 0x154], 0
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x133
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_get_string_from_integer_n
sete al
lea esi, [ebp - 0x154]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x134
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov ecx, 3
repe cmpsb byte [esi], byte es:[edi]
mov dword [esp + 4], str.failed_to_get_string_from_integer_n
mov edi, 0x588014
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], 0xffffffe0
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordSetInteger
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x136
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.Failed_to_set_integer_at_0_to_32_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov byte [ebp - 0x154], 0
mov dword [ebp - 0x164], 1
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x13a
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_get_string_from_integer_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x13b
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 3
mov dword [esp + 4], str.length_wrong_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordGetStringA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x13e
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_get_string_from_integer_n
sete al
lea esi, [ebp - 0x154]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x13f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
mov dword [esp + 4], str.failed_to_get_string_from_integer_n
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov byte [ebp - 0x154], 0
call sub.msi.dll_MsiRecordSetStreamA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x144
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x57
mov dword [esp + 4], str.set_NULL_stream_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x154]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x147
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x70c
mov dword [esp + 4], str.read_non_stream_type_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x148
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 0xa
mov dword [esp + 4], str.set_sz_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0xffffffff
call sub.msi.dll_MsiRecordDataSize
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x14a
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.MsiRecordDataSize_returned_wrong_size_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 0
call sub.msi.dll_MsiRecordDataSize
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x14c
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 4
mov dword [esp + 4], str.MsiRecordDataSize_returned_wrong_size_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
call sub.msi.dll_MsiCloseHandle
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x150
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.Failed_to_close_handle_n
sete al
lea ebx, [ebp - 0x11c]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x588087
mov dword [esp], 0x58808f
call dword [sym.imp.kernel32.dll_GetTempFileNameA]
sub esp, 0x10
test eax, eax
jne 0x512770
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0000000
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CreateFileA]
sub esp, 0x1c
mov esi, eax
cmp eax, 0xffffffff
je 0x512767
lea edi, [ebp - 0x136]
mov eax, 0x61
mov ecx, edi
mov edx, edi
sub eax, ecx
lea ecx, [eax + edx]
add edx, 1
mov byte [edx - 1], cl
cmp edx, ebx
jne 0x5127c4
lea eax, [ebp - 0x160]
mov dword [ebp - 0x16c], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x1a
mov dword [esp + 4], edi
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_WriteFile]
sub esp, 0x14
mov ebx, eax
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
test ebx, ebx
je 0x512767
mov dword [esp], 2
mov edi, str.abcdefghij
call sub.msi.dll_MsiCreateRecord
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x159
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov dword [esp], ebx
mov dword [esp + 4], str.couldnt_create_a_two_field_record_n
call fcn.0052b0e0
mov edx, dword [ebp - 0x16c]
mov dword [esp], ebx
mov dword [esp + 4], 0
mov dword [esp + 8], edx
call sub.msi.dll_MsiRecordSetStreamA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x15b
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x57
mov dword [esp + 4], str.added_stream_to_field_0_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov edx, dword [ebp - 0x16c]
mov dword [esp], ebx
mov dword [esp + 4], 1
mov dword [esp + 8], edx
call sub.msi.dll_MsiRecordSetStreamA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x15d
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_add_stream_to_record_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x154]
mov dword [esp], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 1
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x15f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x57
mov dword [esp + 4], str.should_return_error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov edx, dword [ebp - 0x16c]
mov eax, dword [sym.imp.kernel32.dll_DeleteFileA]
mov dword [ebp - 0x170], edx
mov dword [esp], edx
mov dword [ebp - 0x16c], eax
call eax
sub esp, 4
mov dword [esp], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x162
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x57
mov dword [esp + 4], str.should_return_error_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea ecx, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x165
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_read_stream_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x166
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 0x1a
mov dword [esp + 4], str.couldnt_get_size_of_stream_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea ecx, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], ecx
lea ecx, [ebp - 0x154]
mov dword [esp + 8], ecx
mov dword [esp + 4], 1
mov dword [ebp - 0x164], 0
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x169
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_read_stream_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x16a
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov edx, dword [ebp - 0x164]
xor eax, eax
mov dword [esp + 4], str.short_read_n
test edx, edx
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea ecx, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], ecx
lea ecx, [ebp - 0x154]
mov dword [esp + 8], ecx
mov dword [esp + 4], 1
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x16d
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_read_stream_n
sete al
lea esi, [ebp - 0x154]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x16e
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 0xa
mov dword [esp + 4], str.short_read_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x16f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov ecx, 0xa
repe cmpsb byte [esi], byte es:[edi]
mov dword [esp + 4], str.read_the_wrong_thing_n
mov edi, str.klmnopqrst
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
lea ecx, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], ecx
lea ecx, [ebp - 0x154]
mov dword [esp + 8], ecx
mov dword [esp + 4], 1
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x172
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_read_stream_n
sete al
lea esi, [ebp - 0x154]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x173
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 0xa
mov dword [esp + 4], str.short_read_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x174
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov ecx, 0xa
repe cmpsb byte [esi], byte es:[edi]
mov dword [esp + 4], str.read_the_wrong_thing_n
mov edi, str.uvwxyz
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
xor ecx, ecx
lea edx, [ebp - 0x154]
mov dword [esp], ebx
mov word [ebp - 0x14c], cx
lea ecx, [ebp - 0x164]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 1
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x178
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_read_stream_n
sete al
lea esi, [ebp - 0x154]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x179
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 6
mov dword [esp + 4], str.short_read_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x17a
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov ecx, 7
repe cmpsb byte [esi], byte es:[edi]
mov dword [esp + 4], str.read_the_wrong_thing_n
seta al
sbb al, 0
test al, al
sete al
xor esi, esi
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
lea edx, [ebp - 0x154]
mov dword [esp], ebx
lea ecx, [ebp - 0x164]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 1
mov word [ebp - 0x14c], si
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x164], 0xa
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x17e
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_read_stream_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x17f
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
mov edi, dword [ebp - 0x164]
xor eax, eax
mov dword [esp + 4], str.size_non_zero_at_end_of_stream_n
test edi, edi
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x180
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp byte [ebp - 0x154], 0
mov dword [esp + 4], str.read_something_at_end_of_the_stream_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 1
call sub.msi.dll_MsiRecordSetStreamA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x182
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.failed_to_reset_stream_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
lea ecx, [ebp - 0x164]
mov dword [esp], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [ebp - 0x164], 0
call sub.msi.dll_MsiRecordReadStream
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x185
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 4], str.bytes_left_wrong_after_reset_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x186
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x164], 0x1a
mov dword [esp + 4], str.couldnt_get_size_of_stream_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
mov dword [esp + 4], 1
call sub.msi.dll_MsiRecordDataSize
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x188
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0x1a
mov dword [esp + 4], str.MsiRecordDataSize_returned_wrong_size_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
call sub.msi.dll_MsiCloseHandle
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x18c
mov dword [esp], str..._wine_dlls_msi_tests_record.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.Failed_to_close_handle_n
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x16c]
mov dword [esp], edx
call eax
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x587ea6]
cmp dword [ebp - 0x146], eax
jne 0x51185b
xor eax, eax
jmp 0x511860