Function at 0x47c110
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x18c
call fcn.004665f0
test eax, eax
jne 0x47ca30
mov dword [esp + 0x18], str.004757CA_5092_49C2_AD20_28E1CE0DF5F2
lea ebx, [ebp - 0x11c]
mov dword [esp + 0x14], 0x55fdab
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x64
mov dword [esp + 8], 8
mov dword [esp + 4], 0x563320
mov dword [esp], str.winetest.msi
call fcn.00467500
mov dword [esp + 4], 0x59c100
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll_strcpy]
mov eax, ebx
mov ecx, dword [eax]
add eax, 4
lea edx, [ecx - 0x1010101]
not ecx
and edx, ecx
and edx, 0x80808080
je 0x47c17e
mov ecx, edx
shr ecx, 0x10
test edx, 0x8080
cmove edx, ecx
lea ecx, [eax + 2]
cmove eax, ecx
mov ecx, edx
add cl, dl
mov edx, 0x5c
sbb eax, 3
sub eax, ebx
mov word [ebx + eax], dx
mov edx, dword [str.winetest.msi]
mov dword [esp], ebx
mov dword [ebp + eax - 0x11b], edx
mov edx, dword [0x566c84]
mov dword [ebp + eax - 0x117], edx
mov edx, dword [0x566c88]
mov dword [ebp + eax - 0x113], edx
movzx edx, byte [0x566c8c]
mov byte [ebp + eax - 0x10f], dl
lea eax, [ebp - 0x16c]
mov dword [esp + 4], eax
call sub.msi.dll_MsiOpenPackageA
sub esp, 8
mov ebx, eax
cmp eax, 0x659
je 0x47ca60
mov dword [esp + 4], 0x369e
mov edi, 0x560424
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x55fe18
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.msi.dll_MsiGetFeatureInfoA
sub esp, 0x1c
mov ebx, eax
mov dword [esp + 4], 0x36a1
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 0x57
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.expected_ERROR_INVALID_PARAMETER__got__u_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x16c]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msi.dll_MsiGetFeatureInfoA
sub esp, 0x1c
mov ebx, eax
mov dword [esp + 4], 0x36a4
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 0x57
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.expected_ERROR_INVALID_PARAMETER__got__u_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x16c]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x55fb90
mov dword [esp], eax
call sub.msi.dll_MsiGetFeatureInfoA
sub esp, 0x1c
mov ebx, eax
mov dword [esp + 4], 0x36a7
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 0x646
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.expected_ERROR_UNKNOWN_FEATURE__got__u_n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x16c]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x560424
mov dword [esp], eax
call sub.msi.dll_MsiGetFeatureInfoA
sub esp, 0x1c
mov ebx, eax
mov dword [esp + 4], 0x36aa
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x560404
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x560424
mov dword [esp], 0
call sub.msi.dll_MsiGetFeatureInfoA
sub esp, 0x1c
mov ebx, eax
mov dword [esp + 4], 0x36ad
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 6
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.expected_ERROR_INVALID_HANDLE__got__u_n
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x160]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x164]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x16c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x560424
mov dword [esp], eax
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x164], 0
call sub.msi.dll_MsiGetFeatureInfoA
sub esp, 0x1c
mov ebx, eax
mov dword [esp + 4], 0x36b1
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x560404
lea ebx, [ebp - 0x15c]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36b2
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x164]
mov dword [esp + 4], str.expected_3__got__u_n
cmp eax, 3
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36b3
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], str.expected_3__got__u_n
cmp eax, 3
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x160]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x13c]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x164]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x16c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x560424
mov dword [esp], eax
mov byte [ebp - 0x13c], 0
mov byte [ebp - 0x15c], 0
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x164], 0
call sub.msi.dll_MsiGetFeatureInfoA
sub esp, 0x1c
mov esi, eax
mov dword [esp + 4], 0x36b8
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
cmp esi, 0xea
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.expected_ERROR_MORE_DATA__got__u_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36b9
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x164]
mov dword [esp + 4], str.expected_3__got__u_n
cmp eax, 3
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36ba
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], str.expected_3__got__u_n
cmp eax, 3
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x160]
lea edx, [ebp - 0x168]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x13c]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x164]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x16c]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x560424
mov dword [esp], eax
mov dword [ebp - 0x168], 0
mov byte [ebp - 0x13c], 0
mov byte [ebp - 0x15c], 0
mov dword [ebp - 0x164], 0x20
mov dword [ebp - 0x160], 0x20
call sub.msi.dll_MsiGetFeatureInfoA
sub esp, 0x1c
mov esi, eax
mov dword [esp + 4], 0x36c1
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x560404
mov esi, ebx
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36c2
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x168]
mov dword [esp + 4], str.expected_INSTALLFEATUREATTRIBUTE_FAVORLOCAL__got__u_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36c3
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x164]
mov dword [esp + 4], str.expected_3__got__u_n
cmp eax, 3
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36c4
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], str.expected_3__got__u_n
cmp eax, 3
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36c5
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
mov dword [esp + 8], ebx
lea esi, [ebp - 0x13c]
mov edi, 0x560424
mov dword [esp + 4], str.expected__One___got___s__n
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36c6
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
lea edi, [ebp - 0x13c]
mov dword [esp + 4], str.expected__One___got___s__n
mov dword [esp + 8], edi
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x160]
lea edx, [ebp - 0x168]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x164]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x16c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 0x560617
mov dword [esp], eax
mov dword [ebp - 0x168], 0
mov byte [ebp - 0x13c], 0
mov byte [ebp - 0x15c], 0
mov dword [ebp - 0x164], 0x20
mov dword [ebp - 0x160], 0x20
call sub.msi.dll_MsiGetFeatureInfoA
sub esp, 0x1c
mov esi, eax
mov dword [esp + 4], 0x36cd
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x560404
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36ce
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x168]
mov dword [esp + 4], str.expected_INSTALLFEATUREATTRIBUTE_FAVORLOCAL__got__u_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36cf
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x164]
mov dword [esp + 4], 0x56061b
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36d0
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x160]
mov dword [esp + 4], 0x56061b
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36d1
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
cmp byte [ebp - 0x15c], 0
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.expected_____got___s__n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x36d2
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
cmp byte [ebp - 0x13c], 0
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.expected_____got___s__n
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x16c]
mov dword [esp], eax
call sub.msi.dll_MsiCloseHandle
sub esp, 4
mov dword [esp], str.winetest.msi
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x368e
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov dword [esp], 0x55fd58
call fcn.0052b1d0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x369a
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov dword [esp], 0x55fb58
call fcn.0052b1d0
mov dword [esp], str.winetest.msi
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret