Function at 0x40fd40
Capabilities:
Create directory
Delete directory
Delete file
Delete registry key
Query or enumerate 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 0x411030
mov dword [esp + 4], 0
mov dword [esp], 0x52e11c
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
sub esp, 8
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], 0x532960
mov dword [esp], 0x52e06e
call fcn.00467500
mov dword [esp + 4], 0
mov dword [esp], 2
call sub.msi.dll_MsiSetInternalUI
lea eax, [ebp - 0x3c]
sub esp, 8
mov dword [esp + 8], eax
mov dword [esp + 4], 0x52e11c
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegCreateKeyA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x12da
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 - 0x3c]
mov dword [esp + 0x14], 5
mov dword [esp + 0x10], 0x52f58d
mov dword [esp + 0xc], 7
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f592
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x12dd
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 - 0x3c]
mov dword [esp + 0x14], 5
mov dword [esp + 0x10], 0x52f599
mov dword [esp + 0xc], 7
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f59e
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x12df
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 - 0x3c]
mov dword [esp + 0x14], 5
mov dword [esp + 0x10], 0x52f58d
mov dword [esp + 0xc], 7
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f5a5
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x12e1
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 - 0x3c]
mov dword [esp + 0x14], 5
mov dword [esp + 0x10], 0x52f599
mov dword [esp + 0xc], 7
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f5ac
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x12e3
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 - 0x3c]
mov dword [esp + 0x14], 9
mov dword [esp + 0x10], 0x52f5b3
mov dword [esp + 0xc], 7
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f5bc
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x12e5
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 - 0x3c]
mov dword [esp + 0x14], 5
mov dword [esp + 0x10], 0x52f599
mov dword [esp + 0xc], 7
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f5c3
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x12e7
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 - 0x3c]
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], 0x52f5ca
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f5ce
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x12e9
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 - 0x3c]
mov dword [esp + 0x14], 3
mov dword [esp + 0x10], 0x52f5d5
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.instremove
mov dword [esp], eax
call sub.advapi32.dll_RegSetValueExA
sub esp, 0x18
mov ebx, eax
mov dword [esp + 4], 0x12ec
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
lea ebx, [ebp - 0x38]
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.instremove
mov dword [esp], eax
call sub.advapi32.dll_RegCreateKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x12ef
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
mov dword [esp + 4], 0
mov dword [esp], 0x52e06e
call sub.msi.dll_MsiInstallProductA
sub esp, 8
mov esi, eax
cmp eax, 0x659
je 0x411060
mov dword [esp + 4], 0x12f8
mov edi, 0x52f5ec
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52e294
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0x12fa
mov eax, dword [ebp - 0x3c]
mov ecx, 0x52f5ec
mov dword [esp + 4], 0
mov edx, 0x52f5f3
mov dword [esp], 1
call fcn.004095d0
mov dword [esp], 0x12fb
mov eax, dword [ebp - 0x3c]
mov ecx, 0x52f5f6
mov edx, str.multisz
call fcn.00409250
mov dword [esp + 4], 0x12fc
mov eax, dword [ebp - 0x3c]
mov ecx, 0x7b
mov dword [esp], 0
mov edx, str.dword
call fcn.00401050
lea eax, [ebp - 0x30]
lea edx, [ebp - 0x34]
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0xc], edx
mov dword [esp + 4], str.expandsz
mov dword [esp], eax
mov dword [ebp - 0x30], 0x14
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x1300
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
lea esi, [ebp - 0x2c]
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1301
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], 0x52f11b
cmp eax, 2
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1302
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov ecx, 7
repe cmpsb byte [esi], byte es:[edi]
lea edi, [ebp - 0x2c]
mov dword [esp + 4], 0x52f113
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 - 0x30]
lea edx, [ebp - 0x34]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x3c]
mov edi, 0x52e054
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0
mov dword [esp + 4], str.binary
mov dword [esp], eax
mov dword [ebp - 0x30], 0x14
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x1306
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1307
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], 0x52f11b
cmp eax, 3
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1308
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], 0x52f623
cmp eax, 4
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 4], 0x1309
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp dword [ebp - 0x2c], 0x67452301
mov dword [esp + 4], 0x52f630
sete al
mov dword [esp], eax
call fcn.0052b0e0
mov dword [esp + 8], 0x130b
mov eax, dword [ebp - 0x3c]
mov ecx, str.default
mov dword [esp + 4], 0
mov edx, 0x52ee3b
mov dword [esp], 1
call fcn.004095d0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.VisualStudio
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x130e
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52ea88
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x3c]
mov ecx, 0x52f599
mov edx, 0x52f592
sub esp, 4
mov dword [esp], 0x1311
call fcn.00409250
mov dword [esp], 0x1312
mov eax, dword [ebp - 0x3c]
mov ecx, 0x52f5b3
mov edx, 0x52f59e
call fcn.00409250
mov dword [esp], 0x1313
mov eax, dword [ebp - 0x3c]
mov ecx, 0x52f5b3
mov edx, 0x52f5a5
call fcn.00409250
mov dword [esp], 0x1314
mov eax, dword [ebp - 0x3c]
mov ecx, 0x52f5b3
mov edx, 0x52f5ac
call fcn.00409250
mov dword [esp], 0x1315
mov eax, dword [ebp - 0x3c]
mov ecx, 0x52f5f6
mov edx, 0x52f5bc
call fcn.00409250
mov dword [esp], 0x1316
mov eax, dword [ebp - 0x3c]
mov ecx, 0x52ee3b
mov edx, 0x52f5c3
call fcn.00409250
mov dword [esp], 0x1317
mov eax, dword [ebp - 0x3c]
mov ecx, 0x52f58d
mov edx, 0x52f5ce
call fcn.00409250
mov dword [esp + 4], 0x1319
mov eax, dword [ebp - 0x3c]
mov ecx, 1
mov dword [esp], 0
mov edx, 0x52f651
call fcn.00401050
mov dword [esp + 4], 0x131a
mov eax, dword [ebp - 0x3c]
mov ecx, 1
mov dword [esp], 0
mov edx, 0x52f658
call fcn.00401050
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.subkey
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x131d
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x38]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x131f
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x3c]
sub esp, 4
mov dword [esp + 8], ebx
mov dword [esp + 4], str.create
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x1323
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x3c]
sub esp, 4
mov dword [esp + 8], ebx
mov dword [esp + 4], str.delete
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x1327
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.delete
mov dword [esp], eax
call sub.advapi32.dll_RegCreateKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x1329
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x3c]
sub esp, 4
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.instremove
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x132d
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.instremove
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x132f
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
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 esi, eax
mov dword [esp + 4], 0x1332
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f5f3
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x1335
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.multisz
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x1337
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.dword
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x1339
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.expandsz
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x133b
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.binary
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x133d
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52ee3b
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x133f
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.VisualStudio
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x1342
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f592
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x1345
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f5ac
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x1347
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f5bc
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x1349
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f5c3
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x134b
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f5ce
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x134d
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
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
jmp 0x410d97
mov dword [esp], 0x1350
mov eax, dword [ebp - 0x3c]
mov ecx, 0x52f599
mov edx, 0x52f59e
call fcn.00409250
mov dword [esp], 0x1351
mov eax, dword [ebp - 0x3c]
mov ecx, 0x52f58d
mov edx, 0x52f5a5
call fcn.00409250
call fcn.0052b2a0
call fcn.0052b280
test eax, eax
jne 0x410d60
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f651
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x1355
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x52f658
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExA
sub esp, 0x18
mov esi, eax
mov dword [esp + 4], 0x1357
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.subkey
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x135a
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
cmp esi, 2
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.create
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x135d
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
mov eax, dword [ebp - 0x3c]
sub esp, 4
mov dword [esp + 4], str.create
mov dword [esp], eax
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov esi, eax
mov dword [esp + 4], 0x1360
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.delete
mov dword [esp], eax
call sub.advapi32.dll_RegOpenKeyA
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x1363
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], 0x52f5e4
mov dword [esp], eax
call fcn.0052b0e0
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
mov dword [esp + 4], 0x52e11c
mov dword [esp], 0x80000001
call sub.advapi32.dll_RegDeleteKeyA
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x1367
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 dword [esp], eax
call fcn.0052b0e0
mov dword [esp], 0x52e06e
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
mov dword [esp], 0x52e11c
call dword [sym.imp.kernel32.dll_RemoveDirectoryA]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x12cf
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], 0x12f5
mov dword [esp], str..._wine_dlls_msi_tests_action.c
call fcn.0052ae70
mov dword [esp], 0x52e270
call fcn.0052b1d0
jmp 0x410ffe