Function at 0x4dd7a0
Capabilities:
Delete file
Get common file path
Get system information on windows
Identify system language via api
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x220]
push ebx
sub esp, 0x28c
cmp dword [0x58b8e4], 1
sbb esi, esi
mov dword [esp + 4], 0x58b7e0
and esi, 0xffffff00
mov dword [esp], edi
add esi, 0xf013f
call dword [sym.imp.msvcrt.dll_strcpy]
call fcn.004dd750
test eax, eax
je 0x4de430
mov eax, edi
mov ecx, dword [eax]
add eax, 4
lea edx, [ecx - 0x1010101]
not ecx
and edx, ecx
and edx, 0x80808080
je 0x4dd7e7
mov ecx, edx
mov dword [esp + 4], 0
shr ecx, 0x10
test edx, 0x8080
mov dword [esp], 0x103
cmove edx, ecx
lea ecx, [eax + 2]
cmove eax, ecx
mov ebx, edx
add bl, dl
mov edx, dword [str.winetest_package.msi]
sbb eax, 3
sub eax, edi
mov dword [ebp + eax - 0x220], edx
mov edx, dword [0x585950]
mov dword [ebp + eax - 0x21c], edx
mov edx, dword [0x585954]
mov dword [ebp + eax - 0x218], edx
mov edx, dword [0x585958]
mov dword [ebp + eax - 0x214], edx
mov edx, dword [0x58595c]
mov dword [ebp + eax - 0x210], edx
movzx edx, byte [0x585960]
mov byte [ebp + eax - 0x20c], dl
call sub.msi.dll_MsiSetInternalUI
sub esp, 8
mov dword [ebp - 0x270], eax
call fcn.004d3630
mov dword [esp + 4], 0x15de
mov dword [esp], str..._wine_dlls_msi_tests_package.c
mov ebx, eax
call fcn.0052ae70
mov dword [esp + 4], 0x569567
mov dword [esp], ebx
call fcn.0052b0e0
lea edx, [ebp - 0x25c]
mov eax, ebx
call fcn.004d3c40
cmp eax, 0x659
je 0x4de872
mov dword [esp + 4], 0x15e8
mov dword [esp], str..._wine_dlls_msi_tests_package.c
mov dword [ebp - 0x26c], eax
call fcn.0052ae70
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], str.failed_to_create_package__u_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], ebx
lea ebx, [ebp - 0x11c]
call sub.msi.dll_MsiCloseHandle
lea eax, [ebp - 0x258]
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
sub esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.UILevel
mov dword [esp], eax
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov dword [ebp - 0x26c], eax
mov dword [esp + 4], 0x15ef
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], str.failed_to_get_property:__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x15f0
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [sym.imp.kernel32.dll_lstrcmpA]
mov dword [esp + 4], 0x5695a6
mov dword [esp], ebx
mov dword [ebp - 0x26c], eax
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], ebx
movzx eax, al
mov dword [esp + 4], str.Expected__3___got___s__n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], 2
call sub.msi.dll_MsiSetInternalUI
mov eax, dword [ebp - 0x25c]
lea ecx, [ebp - 0x258]
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
sub esp, 8
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], str.UILevel
mov dword [esp], eax
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov dword [ebp - 0x274], eax
mov dword [esp + 4], 0x15f7
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x274]
mov dword [esp + 4], str.failed_to_get_property:__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x15f8
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp], ebx
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], 0x5695a6
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], ebx
movzx eax, al
mov dword [esp + 4], str.Expected__3___got___s__n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x25c]
lea ecx, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], str.DATABASE
mov dword [esp], eax
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov dword [ebp - 0x274], eax
mov dword [esp + 4], 0x15fd
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x274]
mov dword [esp + 4], str.failed_to_get_property:__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x15fe
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x26c]
mov dword [esp], ebx
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], 0x5695c9
call fcn.0052b0e0
lea eax, [ebp - 0x250]
mov dword [esp + 4], str.SOFTWAREMicrosoftMS_Setup__ACME_User_Info
mov dword [esp + 8], eax
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegOpenKeyA
lea eax, [ebp - 0x24c]
sub esp, 0xc
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], str.SOFTWAREMicrosoftWindows_NTCurrentVersion
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
lea eax, [ebp - 0x248]
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x101
mov dword [esp + 8], 0
mov dword [esp + 4], str.SOFTWAREMicrosoftWindowsCurrentVersion
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
lea eax, [ebp - 0x258]
mov dword [ebp - 0x258], 0x104
sub esp, 0x14
mov byte [ebp - 0x220], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x254]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x250]
mov dword [esp + 0x10], edi
mov dword [esp + 8], 0
mov dword [esp + 4], str.DefName
mov dword [esp], eax
mov dword [ebp - 0x254], 1
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
test eax, eax
jne 0x4de820
lea eax, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 4], str.USERNAME
mov dword [esp], eax
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x1612
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_to_get_property:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1613
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x26c]
mov dword [esp], ebx
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], 0x5695c9
call fcn.0052b0e0
lea eax, [ebp - 0x258]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x254]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x250]
mov dword [esp + 8], 0
mov dword [esp + 4], str.DefCompany
mov dword [esp], eax
mov dword [ebp - 0x258], 0x104
mov dword [ebp - 0x254], 1
mov byte [ebp - 0x220], 0
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
test eax, eax
jne 0x4de7c4
cmp byte [ebp - 0x220], 0
mov eax, dword [ebp - 0x25c]
jne 0x4de710
lea esi, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.VersionDatabase
mov dword [esp], eax
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x162b
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_to_get_property:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x162c
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], ebx
mov dword [esp], str.VersionDatabase___s_n
call fcn.0052b110
lea eax, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 4], str.VersionMsi
mov dword [esp], eax
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x1631
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_to_get_property:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1632
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], ebx
mov dword [esp], str.VersionMsi___s_n
call fcn.0052b110
lea eax, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 4], str.Date
mov dword [esp], eax
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x1637
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_to_get_property:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1638
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], ebx
mov dword [esp], str.Date___s_n
call fcn.0052b110
lea eax, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 4], str.Time
mov dword [esp], eax
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x163d
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_to_get_property:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x163e
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], ebx
mov dword [esp], str.Time___s_n
call fcn.0052b110
lea eax, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 4], 0x56971b
mov dword [esp], eax
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x1643
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_to_get_property:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1644
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], ebx
mov dword [esp], str.PackageCode___s_n
call fcn.0052b110
lea eax, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 4], str.ComputerName
mov dword [esp], eax
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x1649
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Expected_ERROR_SUCCESS_got__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x164a
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], ebx
mov dword [esp], str.ComputerName___s_n
call fcn.0052b110
call dword [sym.imp.kernel32.dll_GetUserDefaultLangID]
mov dword [esp + 4], 0x569759
movzx eax, ax
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.004d3c10
lea eax, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 4], str.UserLanguageID
mov dword [esp], eax
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x1652
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Expected_ERROR_SUCCESS_got__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1653
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x26c]
mov dword [esp], ebx
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 8], edi
mov dword [esp + 4], 0x56976b
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], 0
call sub.user32.dll_GetSystemMetrics
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
sub esp, 4
mov esi, eax
lea eax, [ebp - 0x258]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.ScreenX
mov dword [esp], eax
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov dword [ebp - 0x26c], eax
mov dword [esp + 4], 0x1659
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], str.Expected_ERROR_SUCCESS_got__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x165a
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edx, dword [sym.imp.msvcrt.dll_atol]
mov dword [esp], ebx
mov dword [ebp - 0x274], edx
call edx
mov dword [esp + 8], esi
cmp eax, esi
mov dword [esp + 0xc], ebx
sete al
mov dword [esp + 4], str.Expected__d__got__s_n
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], 1
call sub.user32.dll_GetSystemMetrics
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
sub esp, 4
mov esi, eax
lea eax, [ebp - 0x258]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.ScreenY
mov dword [esp], eax
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov dword [ebp - 0x26c], eax
mov dword [esp + 4], 0x1660
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], str.Expected_ERROR_SUCCESS_got__d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1661
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov edx, dword [ebp - 0x274]
mov dword [esp], ebx
call edx
mov dword [esp + 0xc], ebx
cmp eax, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Expected__d__got__s_n
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x25c]
mov dword [esp + 4], str.MsiNetAssemblySupport
mov dword [esp], eax
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
test eax, eax
je 0x4de6e4
lea eax, [ebp - 0x244]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetNativeSystemInfo]
mov eax, dword [sym.imp.kernel32.dll_GetVersion]
sub esp, 4
mov dword [ebp - 0x26c], eax
call eax
mov esi, eax
mov eax, dword [ebp - 0x26c]
call eax
mov ecx, esi
mov dword [esp + 4], 0x569759
movzx esi, cl
movzx eax, ah
mov dword [esp], ebx
imul esi, esi, 0x64
add esi, eax
mov dword [esp + 8], esi
call fcn.004d3c10
mov dword [esp], 1
mov eax, dword [ebp - 0x25c]
mov ecx, ebx
mov edx, str.VersionNT
call fcn.004d3fd0
movzx eax, word [ebp - 0x244]
cmp ax, 9
je 0x4de8c3
test ax, ax
je 0x4de470
mov eax, dword [ebp - 0x250]
mov ebx, dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x24c]
sub esp, 4
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x248]
sub esp, 4
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x25c]
sub esp, 4
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
sub esp, 4
mov dword [esp], str.winetest_package.msi
call dword [sym.imp.kernel32.dll_DeleteFileA]
mov eax, dword [ebp - 0x270]
sub esp, 4
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msi.dll_MsiSetInternalUI
sub esp, 8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, edi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4de432
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ebx, eax
add bl, al
mov eax, 0x5c
sbb edx, 3
mov word [edx], ax
jmp 0x4dd7e5
movzx eax, word [ebp - 0x224]
mov dword [esp + 4], 0x569759
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.004d3c10
mov dword [esp], 1
mov eax, dword [ebp - 0x25c]
mov ecx, ebx
mov edx, str.Intel
call fcn.004d3fd0
mov dword [esp + 4], 0x104
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_GetSystemDirectoryA]
mov edx, edi
sub esp, 8
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4de4ba
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, edi
mov ebx, eax
add bl, al
mov ebx, 0x5c
mov eax, dword [ebp - 0x25c]
sbb edx, 3
mov word [edx], bx
mov edx, str.SystemFolder
mov dword [esp], 0
call fcn.004d3fd0
lea eax, [ebp - 0x258]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x254]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x248]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x569836
mov dword [esp], eax
mov dword [ebp - 0x258], 0x104
call sub.advapi32.dll_RegQueryValueExA
mov edx, edi
sub esp, 0x18
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4de550
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, 0x5c
mov ebx, eax
add bl, al
mov eax, dword [ebp - 0x25c]
sbb edx, 3
mov word [edx], cx
mov edx, str.ProgramFilesFolder
mov ecx, edi
mov dword [esp], 0
call fcn.004d3fd0
lea eax, [ebp - 0x258]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x254]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x248]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x569882
mov dword [esp], eax
mov dword [ebp - 0x258], 0x104
call sub.advapi32.dll_RegQueryValueExA
mov edx, edi
sub esp, 0x18
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4de5e6
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, edi
mov ebx, eax
add bl, al
mov eax, 0x5c
sbb edx, 3
mov word [edx], ax
mov eax, dword [ebp - 0x25c]
mov edx, str.CommonFilesFolder
mov dword [esp], 0
call fcn.004d3fd0
mov eax, dword [ebp - 0x25c]
mov ecx, 0x567e5a
mov dword [esp], 1
mov edx, str.MsiAMD64
call fcn.004d3fd0
mov eax, dword [ebp - 0x25c]
mov ecx, 0x567e5a
mov dword [esp], 1
mov edx, str.Msix64
call fcn.004d3fd0
mov eax, dword [ebp - 0x25c]
mov ecx, 0x567e5a
mov dword [esp], 1
mov edx, str.VersionNT64
call fcn.004d3fd0
mov eax, dword [ebp - 0x25c]
mov ecx, 0x567e5a
mov dword [esp], 0
mov edx, str.System64Folder
call fcn.004d3fd0
mov eax, dword [ebp - 0x25c]
mov ecx, 0x567e5a
mov dword [esp], 0
mov edx, str.ProgramFiles64Dir
call fcn.004d3fd0
mov eax, dword [ebp - 0x25c]
mov ecx, 0x567e5a
mov dword [esp], 0
mov edx, str.CommonFiles64Dir
call fcn.004d3fd0
jmp 0x4de3b9
mov dword [esp + 4], 0x1666
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], ebx
mov dword [esp], str.MsiNetAssemblySupport___s__n
call fcn.0052b110
jmp 0x4de33c
lea esi, [ebp - 0x258]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.COMPANYNAME
mov dword [esp], eax
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x258], 0x104
call sub.msi.dll_MsiGetPropertyA
sub esp, 0x10
mov esi, eax
mov dword [esp + 4], 0x1624
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_to_get_property:__d_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1625
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x26c]
mov dword [esp], ebx
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], ebx
movzx eax, al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], 0x5695c9
call fcn.0052b0e0
mov eax, dword [ebp - 0x25c]
jmp 0x4ddd5a
lea eax, [ebp - 0x258]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x254]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x24c]
mov dword [esp + 8], 0
mov dword [esp + 4], str.RegisteredOrganization
mov dword [esp], eax
mov dword [ebp - 0x258], 0x104
mov dword [ebp - 0x254], 1
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
jmp 0x4ddd47
lea eax, [ebp - 0x258]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x254]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x24c]
mov dword [esp + 8], 0
mov dword [esp + 4], str.RegisteredOwner
mov dword [esp], eax
mov dword [ebp - 0x258], 0x104
mov dword [ebp - 0x254], 1
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
jmp 0x4ddc3c
mov dword [esp + 4], 0x15e3
mov dword [esp], str..._wine_dlls_msi_tests_package.c
call fcn.0052ae70
mov dword [esp], str.Not_enough_rights_to_perform_tests_n
call fcn.0052b1d0
mov eax, dword [ebp - 0x270]
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msi.dll_MsiSetInternalUI
sub esp, 8
mov dword [esp], str.winetest_package.msi
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, word [ebp - 0x224]
mov dword [esp + 4], 0x569759
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.004d3c10
mov dword [esp], 1
mov eax, dword [ebp - 0x25c]
mov ecx, ebx
mov edx, str.Intel
call fcn.004d3fd0
mov dword [esp], 1
mov eax, dword [ebp - 0x25c]
mov ecx, ebx
mov edx, str.MsiAMD64
call fcn.004d3fd0
mov dword [esp], 1
mov eax, dword [ebp - 0x25c]
mov ecx, ebx
mov edx, str.Msix64
call fcn.004d3fd0
mov eax, dword [ebp - 0x26c]
call eax
mov esi, eax
mov eax, dword [ebp - 0x26c]
call eax
mov ecx, esi
mov dword [esp + 4], 0x569759
movzx esi, cl
movzx eax, ah
mov dword [esp], ebx
imul esi, esi, 0x64
add esi, eax
mov dword [esp + 8], esi
call fcn.004d3c10
mov dword [esp], 1
mov eax, dword [ebp - 0x25c]
mov ecx, ebx
mov edx, str.VersionNT64
call fcn.004d3fd0
mov dword [esp + 4], 0x104
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_GetSystemDirectoryA]
mov edx, edi
sub esp, 8
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4de98b
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, edi
mov ebx, eax
add bl, al
mov eax, 0x5c
sbb edx, 3
mov word [edx], ax
mov eax, dword [ebp - 0x25c]
mov edx, str.System64Folder
mov dword [esp], 0
call fcn.004d3fd0
mov dword [esp + 4], 0x104
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_GetSystemWow64DirectoryA]
mov edx, edi
sub esp, 8
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4de9f2
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, edi
mov ebx, eax
add bl, al
mov eax, 0x5c
sbb edx, 3
mov word [edx], ax
mov eax, dword [ebp - 0x25c]
mov edx, str.SystemFolder
mov dword [esp], 0
call fcn.004d3fd0
lea eax, [ebp - 0x258]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x254]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x248]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x56980d
mov dword [esp], eax
mov dword [ebp - 0x258], 0x104
call sub.advapi32.dll_RegQueryValueExA
mov edx, edi
sub esp, 0x18
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4dea88
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, edi
mov ebx, eax
add bl, al
mov eax, 0x5c
sbb edx, 3
mov word [edx], ax
mov eax, dword [ebp - 0x25c]
mov edx, str.ProgramFilesFolder
mov dword [esp], 0
call fcn.004d3fd0
lea eax, [ebp - 0x258]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x254]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x248]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x569836
mov dword [esp], eax
mov dword [ebp - 0x258], 0x104
call sub.advapi32.dll_RegQueryValueExA
mov edx, edi
sub esp, 0x18
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4deb1e
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, edi
mov ebx, eax
add bl, al
mov eax, 0x5c
sbb edx, 3
mov word [edx], ax
mov eax, dword [ebp - 0x25c]
mov edx, str.ProgramFiles64Folder
mov dword [esp], 0
call fcn.004d3fd0
lea eax, [ebp - 0x258]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x254]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x248]
mov dword [esp + 8], 0
mov dword [esp + 4], str.CommonFilesDir__x86_
mov dword [esp], eax
mov dword [ebp - 0x258], 0x104
call sub.advapi32.dll_RegQueryValueExA
mov edx, edi
sub esp, 0x18
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4debb4
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, edi
mov ebx, eax
add bl, al
mov eax, 0x5c
sbb edx, 3
mov word [edx], ax
mov eax, dword [ebp - 0x25c]
mov edx, str.CommonFilesFolder
mov dword [esp], 0
call fcn.004d3fd0
lea eax, [ebp - 0x258]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x254]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x248]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x569882
mov dword [esp], eax
mov dword [ebp - 0x258], 0x104
call sub.advapi32.dll_RegQueryValueExA
mov edx, edi
sub esp, 0x18
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4dec4a
mov ecx, eax
mov esi, 0x5c
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, edi
mov ebx, eax
add bl, al
mov eax, dword [ebp - 0x25c]
sbb edx, 3
mov word [edx], si
mov edx, str.CommonFiles64Folder
mov dword [esp], 0
call fcn.004d3fd0
jmp 0x4de3b9