Function at 0x477660
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x34c
call fcn.004665f0
test eax, eax
jne 0x477d23
call fcn.00477480
mov dword [esp + 8], 0x3e8
lea esi, [ebp - 0x318]
lea edi, [ebp - 0x320]
mov dword [esp + 4], str.msitest_sourcedir.txt
mov dword [esp], str.msitest_sourcedir.txt
call fcn.00466b70
mov dword [esp + 0x18], str.004757CA_5092_49C2_AD20_28E1CE0DF5F2
mov dword [esp + 0x14], 0x55fdab
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x64
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0x562ea0
mov dword [esp], str.winetest.msi
call fcn.00467500
mov dword [esp + 4], 0
mov dword [esp], 2
call sub.msi.dll_MsiSetInternalUI
mov byte [ebp - 0x318], 0
mov dword [ebp - 0x320], 0x100
sub esp, 8
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 8], str.ProductFiles
mov dword [esp + 4], str.17961602_C4E2_482E_800A_DF6E627549CF
mov dword [esp], str.90120000_0070_0000_0000_4000000FF1CE
call dword [0x58b770]
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0xd4d
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], 0x55fe0f
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0
mov dword [esp], str.winetest.msi
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xd50
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 + 4], 0x55fe38
mov dword [esp], 0x55fe44
call sub.msi.dll_MsiQueryFeatureStateA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xd53
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 3
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x55fe6b
mov dword [esp], eax
call fcn.0052b0e0
mov byte [ebp - 0x318], 0
mov dword [ebp - 0x320], 0x100
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 8], 0x55fe74
mov dword [esp + 4], 0x55fe38
mov dword [esp], 0x55fe44
call dword [0x58b770]
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0xd5a
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], 0x55fe0f
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xd5b
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
movsx eax, byte [ebp - 0x318]
mov dword [esp + 4], str.empty_path_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xd5c
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov ebx, dword [ebp - 0x320]
mov edx, esi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4778b6
mov ecx, eax
mov dword [esp + 8], ebx
shr ecx, 0x10
test eax, 0x8080
mov dword [esp + 4], 0x55fe0f
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
sbb edx, 3
xor eax, eax
sub edx, esi
cmp ebx, edx
lea ebx, [ebp - 0x31c]
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0x14], ebx
mov dword [ebp - 0x31c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 8], 0x55fe74
mov dword [esp + 4], 0x55fe38
mov dword [esp], 0x55fe44
call dword [0x58b770]
sub esp, 0x18
mov dword [ebp - 0x32c], eax
mov dword [esp + 4], 0xd62
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x32c]
mov dword [esp + 4], 0x55fe0f
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xd63
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x31c]
cmp dword [ebp - 0x320], eax
mov dword [esp + 4], 0x55fe0f
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0x10], esi
mov dword [ebp - 0x31c], 0
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 8], 0x55fe74
mov dword [esp + 4], 0x55fe38
mov dword [esp], 0x55fe44
call dword [0x58b770]
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0xd69
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], 0x55fe0f
lea esi, [ebp - 0x218]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xd6a
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x31c]
cmp dword [ebp - 0x320], eax
mov dword [esp + 4], 0x55fe0f
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
xor eax, eax
mov dword [esp + 0x14], edi
mov word [ebp - 0x218], ax
mov dword [ebp - 0x320], 0x100
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 8], str.DD422F92_3ED8_49B5_A0B7_F266F98357DF
mov dword [esp + 4], str.sourcedir
mov dword [esp], 0x55ff0c
call dword [0x58b76c]
sub esp, 0x18
mov edi, eax
mov dword [esp + 4], 0xd72
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], 0x55fe0f
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xd73
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
movzx eax, word [ebp - 0x218]
mov dword [esp + 4], str.empty_path_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xd74
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
cmp word [ebp - 0x218], 0
mov edx, dword [ebp - 0x320]
je 0x477d50
mov eax, esi
add eax, 2
cmp word [eax], 0
jne 0x477b35
sub eax, esi
sar eax, 1
cmp edx, eax
mov dword [esp + 8], edx
sete al
mov dword [esp + 4], 0x55fe0f
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0x14], ebx
mov dword [ebp - 0x31c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 8], str.DD422F92_3ED8_49B5_A0B7_F266F98357DF
mov dword [esp + 4], str.sourcedir
mov dword [esp], 0x55ff0c
call dword [0x58b76c]
sub esp, 0x18
mov edi, eax
mov dword [esp + 4], 0xd79
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], 0x55fe0f
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xd7a
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x31c]
cmp dword [ebp - 0x320], eax
mov dword [esp + 4], 0x55fe0f
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 0x14], ebx
mov dword [ebp - 0x31c], 0
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 8], str.DD422F92_3ED8_49B5_A0B7_F266F98357DF
mov dword [esp + 4], str.sourcedir
mov dword [esp], 0x55ff0c
call dword [0x58b76c]
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0xd7f
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 0xea
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x55fe0f
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xd80
mov dword [esp], str..._wine_dlls_msi_tests_msi.c
call fcn.0052ae70
mov eax, dword [ebp - 0x31c]
cmp dword [ebp - 0x320], eax
mov dword [esp + 4], 0x55fe0f
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x55ff5a
mov dword [esp], str.winetest.msi
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xd83
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], 0x55fe0f
mov dword [esp], eax
call fcn.0052b0e0
mov ebx, dword [sym.imp.kernel32.dll_DeleteFileA]
mov dword [esp], str.msitest_sourcedir.txt
call ebx
sub esp, 4
call fcn.004775d0
mov dword [esp], str.winetest.msi
call ebx
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0xd3e
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
xor eax, eax
jmp 0x477b42