Function at 0x411090
Capabilities:
Delete file
Delete registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
call fcn.004665f0
test eax, eax
jne 0x411c32
mov dword [esp + 0x18], 0x52e1e8
mov dword [esp + 0x14], 0x52e20f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x64
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0x532e80
mov dword [esp], 0x52e06e
call fcn.00467500
lea eax, [ebp - 0x30]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xf003f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f674
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegCreateKeyExA
sub esp, 0x24
mov ebx, eax
mov dword [esp + 4], 0x137e
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
lea eax, [ebp - 0x2c]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xf003f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.SystemCurrentControlSetControlSession_ManagerEnvironment
mov dword [esp], 0x80000002
call sub.advapi32.dll_RegCreateKeyExA
sub esp, 0x24
mov ebx, eax
mov dword [esp + 4], 0x1382
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0x52f6bd
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.MSITESTVAR1
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x1385
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0x52f6bd
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.MSITESTVAR2
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x1388
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0x52f453
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.MSITESTVAR21
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x138b
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
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], 0x52e06e
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov ebx, eax
cmp eax, 0x659
je 0x411c60
mov dword [esp + 4], 0x1395
lea edi, [ebp - 0x28]
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52e294
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0x1397
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f453
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR1
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x1398
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f453
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR2
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x1399
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f453
mov dword [esp + 4], 0
mov edx, 0x52f6e4
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x139a
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f453
mov dword [esp + 4], 0
mov edx, 0x52f6f0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR5
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x139d
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR6
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x13a0
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR7
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x13a3
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR8
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x13a6
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR9
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x13a9
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR10
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x13ac
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0x13ae
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f745
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR11
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13af
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f453
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR12
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13b0
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f745
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR13
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13b1
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f770
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR14
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13b2
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f781
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR15
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13b3
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f794
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR16
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13b4
mov eax, dword [ebp - 0x30]
mov ecx, str.__2__1
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR17
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13b5
mov eax, dword [ebp - 0x30]
mov ecx, str.1__2__
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR18
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13b6
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f453
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR19
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13b7
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f453
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR20
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13b8
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f453
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR21
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13b9
mov eax, dword [ebp - 0x30]
mov ecx, 0x52e9ff
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR24
mov dword [esp], 1
call fcn.004095d0
mov dword [esp + 8], 0x13ba
mov eax, dword [ebp - 0x2c]
mov ecx, 0x52f453
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR100
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0x52f453
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.MSITESTVAR22
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x13bd
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0x52f453
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.MSITESTVAR23
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x13c0
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR25
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x13c3
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x52e503
mov dword [esp], 0x52e06e
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x13c6
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52f5e4
mov ebx, 1
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0x13c8
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f745
mov dword [esp + 4], 0
mov edx, str.MSITESTVAR13
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR13
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f770
mov edx, str.MSITESTVAR14
sub esp, 8
mov dword [esp + 8], 0x13c9
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR14
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f781
mov edx, str.MSITESTVAR15
sub esp, 8
mov dword [esp + 8], 0x13ca
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR15
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f794
mov edx, str.MSITESTVAR16
sub esp, 8
mov dword [esp + 8], 0x13cb
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR16
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f453
mov edx, str.MSITESTVAR17
sub esp, 8
mov dword [esp + 8], 0x13cc
mov dword [esp + 4], 1
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR17
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f453
mov edx, str.MSITESTVAR18
sub esp, 8
mov dword [esp + 8], 0x13cd
mov dword [esp + 4], 1
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR18
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x30]
mov ecx, 0x52f453
mov edx, str.MSITESTVAR23
sub esp, 8
mov dword [esp + 8], 0x13ce
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR23
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
lea esi, [esi]
nop
mov dword [esp + 8], ebx
mov dword [esp + 4], str.MSITESTVAR_i
mov dword [esp], edi
call fcn.004013d0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x13d4
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 0xc], esi
add ebx, 1
mov dword [esp + 4], str.__d__got__u_n
mov dword [esp], eax
call fcn.0052b0e0
cmp ebx, 0x18
jne 0x411b10
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], str.MSITESTVAR100
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x13d8
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp ebx, 2
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x52ee14
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.MSITESTVAR1
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x30]
sub esp, 8
mov dword [esp + 4], str.MSITESTVAR2
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x30]
sub esp, 8
mov dword [esp + 4], str.MSITESTVAR21
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteValueA
mov eax, dword [ebp - 0x30]
sub esp, 8
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
mov dword [esp], 0x52e06e
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], 0x1377
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp], 0x52e124
call fcn.0052b1d0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x1392
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp], 0x52e270
call fcn.0052b1d0
jmp 0x411bbc