Function at 0x46c3a0
Capabilities:
Create directory
Delete directory
Delete file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov edi, dword [0x58bdc4]
test edi, edi
je 0x46c922
mov dword [esp + 0x18], 0x550708
xor edi, edi
mov ebx, 0x5520c8
mov dword [esp + 0x14], 0x55072f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x64
mov dword [esp + 8], 8
mov dword [esp + 4], 0x555a00
mov dword [esp], 0x54ffa1
call fcn.00467500
mov dword [esp + 4], 0
mov dword [esp], 2
call sub.msi.dll_MsiSetInternalUI
mov eax, dword [sym.imp.kernel32.dll_CreateDirectoryA]
mov dword [ebp - 0x34], edi
mov edx, 1
sub esp, 8
mov dword [ebp - 0x30], 0xc8
mov edi, edx
mov ecx, 1
mov dword [ebp - 0x40], eax
mov eax, 1
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], 0
jmp 0x46c6a9
test edx, edx
jne 0x46c6f5
test edi, edi
jne 0x46c732
test ecx, ecx
jne 0x46c76e
mov esi, dword [ebp - 0x20]
test esi, esi
jne 0x46c7a7
mov ecx, dword [ebp - 0x24]
test ecx, ecx
jne 0x46c7ce
mov edx, dword [ebp - 0x28]
test edx, edx
jne 0x46c7f5
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x46c81c
mov dword [esp + 4], 0
mov dword [esp], 0x54ffa1
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x1278
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x1c]
mov dword [esp + 0x10], esi
mov dword [esp + 4], str._d:_Expected__d__got__d_n
cmp esi, eax
mov dword [esp + 0xc], eax
sete al
mov dword [esp + 8], edi
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1279
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
call fcn.004661a0
mov edi, eax
call fcn.004661a0
mov edx, dword [ebp - 0x30]
mov dword [esp + 0x10], edi
mov edi, dword [ebp - 0x1c]
mov dword [esp + 4], str._d:_Expected__d__got__d_n
cmp eax, edx
mov dword [esp + 0xc], edx
sete al
mov dword [esp + 8], edi
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
test esi, esi
jne 0x46c840
mov dword [esp + 4], 0x127f
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
mov dword [esp + 4], 1
mov dword [esp], 0x550931
call fcn.00467020
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str._d:_File_not_installed_n
call fcn.0052b0e0
mov dword [esp + 4], 0x1280
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
mov dword [esp + 4], 0
mov dword [esp], 0x550026
call fcn.00467020
mov dword [esp + 8], edi
mov dword [esp + 4], str._d:_Directory_not_created_n
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], str.shortone_shorttwo_augustus
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
mov dword [esp], str.shortonelongtwo_augustus
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
mov dword [esp], str.longone_shorttwo_augustus
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
mov dword [esp], str.longonelongtwo_augustus
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
mov dword [esp], str.shortone_shorttwo
call dword [sym.imp.kernel32.dll_RemoveDirectoryA]
sub esp, 4
mov dword [esp], str.shortonelongtwo
call dword [sym.imp.kernel32.dll_RemoveDirectoryA]
sub esp, 4
mov dword [esp], str.longone_shorttwo
call dword [sym.imp.kernel32.dll_RemoveDirectoryA]
sub esp, 4
mov dword [esp], str.longonelongtwo
call dword [sym.imp.kernel32.dll_RemoveDirectoryA]
sub esp, 4
mov dword [esp], str.shortone
call dword [sym.imp.kernel32.dll_RemoveDirectoryA]
sub esp, 4
mov dword [esp], str.longone
call dword [sym.imp.kernel32.dll_RemoveDirectoryA]
add dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x1c]
sub esp, 4
cmp eax, 0x100
je 0x46c90a
mov esi, dword [ebx + 0x10]
mov eax, dword [ebx]
add ebx, 0x28
mov edx, dword [ebx - 0x24]
mov edi, dword [ebx - 0x20]
mov dword [ebp - 0x20], esi
mov esi, dword [ebx - 0x14]
mov ecx, dword [ebx - 0x1c]
mov dword [ebp - 0x24], esi
mov esi, dword [ebx - 0x10]
mov dword [ebp - 0x28], esi
mov esi, dword [ebx - 0xc]
mov dword [ebp - 0x2c], esi
mov esi, dword [ebx - 8]
mov dword [ebp - 0x34], esi
mov esi, dword [ebx - 4]
mov dword [ebp - 0x30], esi
test eax, eax
je 0x46c460
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], edx
mov dword [esp + 4], 0
mov dword [esp], str.shortone
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], str.shortone_shorttwo
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
sub esp, 8
test edx, edx
je 0x46c468
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x38], ecx
mov dword [esp + 4], 0
mov dword [esp], str.shortone
mov eax, esi
call eax
mov eax, esi
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], str.shortonelongtwo
call eax
mov ecx, dword [ebp - 0x38]
sub esp, 8
test edi, edi
je 0x46c470
mov dword [ebp - 0x38], ecx
mov edi, dword [sym.imp.kernel32.dll_CreateDirectoryA]
mov dword [esp + 4], 0
mov dword [esp], str.longone
call edi
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], str.longone_shorttwo
call edi
mov ecx, dword [ebp - 0x38]
sub esp, 8
test ecx, ecx
je 0x46c478
mov edi, dword [sym.imp.kernel32.dll_CreateDirectoryA]
mov dword [esp + 4], 0
mov dword [esp], str.longone
call edi
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], str.longonelongtwo
call edi
mov esi, dword [ebp - 0x20]
sub esp, 8
test esi, esi
je 0x46c483
mov dword [esp + 8], 0x32
mov dword [esp + 4], str.shortone_shorttwo_augustus
mov dword [esp], str.shortone_shorttwo_augustus
call fcn.00466b70
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x46c48e
mov dword [esp + 8], 0x64
mov dword [esp + 4], str.shortonelongtwo_augustus
mov dword [esp], str.shortonelongtwo_augustus
call fcn.00466b70
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x46c499
mov dword [esp + 8], 0x96
mov dword [esp + 4], str.longone_shorttwo_augustus
mov dword [esp], str.longone_shorttwo_augustus
call fcn.00466b70
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x46c4a4
mov dword [esp + 8], 0xc8
mov dword [esp + 4], str.longonelongtwo_augustus
mov dword [esp], str.longonelongtwo_augustus
call fcn.00466b70
jmp 0x46c4a4
mov dword [esp + 4], 0x1284
mov edi, 0x55023b
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
mov dword [esp + 4], 1
mov dword [esp], 0x550931
call fcn.00467020
mov ecx, dword [ebp - 0x1c]
mov dword [esp + 4], str._d:_File_installed_n
test eax, eax
sete al
mov dword [esp + 8], ecx
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov esi, dword [str.windows]
mov ecx, 5
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b250
mov esi, dword [ebp - 0x1c]
jmp 0x46c8fc
mov dword [esp + 4], 0x1285
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
mov dword [esp + 4], 0
mov dword [esp], 0x550026
call fcn.00467020
mov dword [esp + 8], esi
test eax, eax
mov dword [esp + 4], str._d:_Directory_installed_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
call fcn.0052b2a0
call fcn.0052b280
test eax, eax
jne 0x46c8b3
jmp 0x46c5c5
mov dword [esp], 0x54ffa1
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], 0x124c
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
mov dword [esp], str.Run_in_interactive_mode_to_run_source_path_tests._n
call fcn.0052b1d0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret