Function at 0x46a9f0
Capabilities:
Create directory
Delete directory
Delete file
Set current directory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x25c
call fcn.004665f0
test eax, eax
jne 0x46aeb5
mov ebx, dword [sym.imp.kernel32.dll_CreateDirectoryA]
mov dword [esp + 4], 0
mov edi, 0x55023b
mov dword [esp], 0x550026
call ebx
sub esp, 8
mov dword [esp + 8], 0x1f4
mov dword [esp + 4], 0x550931
mov dword [esp], 0x550931
call fcn.00466b70
mov dword [esp + 0x18], 0x550708
mov dword [esp + 0x14], 0x55072f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x64
mov dword [esp + 8], 8
mov dword [esp + 4], 0x555f80
mov dword [esp], 0x54ffa1
call fcn.00467500
mov dword [esp + 4], 0
mov dword [esp], 2
call sub.msi.dll_MsiSetInternalUI
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], str.diffdir
call ebx
mov eax, dword [sym.imp.kernel32.dll_SetCurrentDirectoryA]
sub esp, 8
mov dword [ebp - 0x23c], eax
mov dword [esp], str.diffdir
call eax
lea eax, [ebp - 0x128]
sub esp, 4
mov dword [esp + 8], 0x54ffa1
mov dword [esp + 4], str..._s
mov dword [esp], eax
call fcn.00464c80
lea eax, [ebp - 0x128]
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msi.dll_MsiInstallProductA
mov esi, dword [str.windows]
mov ecx, 5
sub esp, 8
mov ebx, eax
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
jmp 0x46abd7
mov dword [esp + 4], 0xf2a
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x550acc
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xf2b
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 + 4], str.File_installed_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xf2c
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 + 4], str.Directory_created_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
call fcn.0052b2a0
call fcn.0052b280
test eax, eax
jne 0x46ab22
lea eax, [ebp - 0x128]
mov dword [esp + 0xc], 0x54ffa1
mov dword [esp + 8], 0x59c100
mov dword [esp + 4], str._s_s
mov dword [esp], eax
call fcn.00464c80
lea eax, [ebp - 0x128]
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov ebx, eax
cmp eax, 0x659
je 0x46aee0
mov dword [esp + 4], 0xf36
lea esi, [ebp - 0x22c]
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x550244
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xf37
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 + 4], 0x5504b8
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xf38
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 + 4], 0x5504df
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp], esi
mov ebx, dword [sym.imp.msvcrt.dll_strcpy]
mov dword [esp + 4], 0x59c100
call ebx
mov edx, 0x5c
mov dword [esp], esi
mov eax, dword [ebp - 0x23c]
mov word [ebp - 0x22a], dx
call eax
lea eax, [ebp - 0x128]
sub esp, 4
mov dword [esp + 4], 0x59c100
mov dword [esp], eax
call ebx
lea edx, [ebp - 0x128]
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x46ad1b
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
lea eax, [ebp - 0x128]
sbb edx, 3
sub edx, eax
cmp byte [ebp + edx - 0x129], 0x5c
jne 0x46aea0
lea eax, [ebp - 0x128]
add edx, eax
mov dword [edx], 0x7469736d
mov dword [edx + 4], 0x2e747365
mov dword [edx + 8], 0x69736d
mov dword [esp + 4], 0x3a
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_strchr]
mov dword [esp + 4], 0
add eax, 2
mov dword [esp], eax
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xf46
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x550244
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xf47
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 + 4], 0x5504b8
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0xf48
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 + 4], 0x5504df
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x23c]
mov dword [esp], 0x59c100
call eax
mov ebx, dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
mov dword [esp], 0x54ffa1
call ebx
sub esp, 4
mov dword [esp], 0x550931
call ebx
mov ebx, dword [sym.imp.kernel32.dll_RemoveDirectoryA]
sub esp, 4
mov dword [esp], 0x550026
call ebx
sub esp, 4
mov dword [esp], str.diffdir
call ebx
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x5c
mov word [ebp + edx - 0x128], ax
add edx, 1
jmp 0x46ad61
mov dword [esp + 4], 0xf18
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
mov dword [esp], 0x5506bc
call fcn.0052b1d0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0xf33
mov dword [esp], str..._wine_dlls_msi_tests_install.c
call fcn.0052ae70
mov dword [esp], 0x550738
call fcn.0052b1d0
jmp 0x46ae45