Function at 0x403695
Capabilities:
Get file attributes
Get file size
Reference sql statements

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x814
mov eax, dword [0x40e598]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
push 0x51
pop ecx
xor ebx, ebx
mov dword [ebp - 0x7c8], eax
mov esi, 0x402748
mov dword [ebp - 0x7ec], ebx
lea edi, [ebp - 0x570]
mov dword [ebp - 0x7e8], ebx
rep movsd dword es:[edi], dword [esi]
push 0x4026b4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x403704
push 0x4026d0
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x403704
push ebx
push ebx
push 1
push ebx
mov ecx, esi
call dword [0x41118c]
call esi
push 0x403140
lea ecx, [ebp - 0x7bc]
mov dword [ebp - 0x7bc], ebx
mov dword [ebp - 0x7b8], ebx
mov byte [ebp - 0x7b4], bl
call fcn.00404a44
push dword [ebp - 0x7c8]
lea ecx, [ebp - 0x7bc]
push dword [ebp + 8]
call fcn.00404ad6
test eax, eax
je 0x4049ff
push 0x3f
lea ecx, [ebp - 0x7bc]
call fcn.00404c12
test eax, eax
jne 0x4049ff
cmp byte [ebp - 0x7b4], bl
jne 0x403764
call fcn.004035fe
push 0x64
lea ecx, [ebp - 0x7bc]
call fcn.00404c51
mov edi, eax
mov dword [ebp - 0x808], edi
test edi, edi
je 0x4049df
cmp byte [edi], bl
je 0x4049df
push 0x73
lea ecx, [ebp - 0x7bc]
call fcn.00404c12
test eax, eax
je 0x4037b7
push 0x73
lea ecx, [ebp - 0x7bc]
mov dword [ebp - 0x7ec], 1
call fcn.00404c51
mov dword [ebp - 0x7e8], eax
push 0x76
lea ecx, [ebp - 0x7bc]
call fcn.00404c12
mov esi, eax
lea ecx, [ebp - 0x7bc]
push 0x68
mov dword [ebp - 0x7d0], esi
call fcn.00404c12
mov dword [ebp - 0x7d4], eax
test esi, esi
je 0x4037f0
push edi
push 0x4028b0
call fcn.004050c3
pop ecx
pop ecx
lea eax, [ebp - 0x79c]
mov dword [ebp - 0x79c], ebx
push eax
push 1
push edi
call dword [sym.imp.msi.dll_MsiOpenProductA]
test eax, eax
je 0x403847
push edi
push 0x4028cc
call fcn.004050c3
pop ecx
pop ecx
cmp dword [ebp - 0x79c], ebx
je 0x40382b
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x40383f
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffffe
pop eax
jmp 0x404a35
test esi, esi
je 0x403858
push edi
push 0x4028f0
call fcn.004050c3
pop ecx
pop ecx
cmp dword [ebp - 0x7d4], ebx
je 0x40397f
push 0x402908
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiEnableLogA]
cmp eax, 1
je 0x40397f
lea eax, [ebp - 0x7c4]
mov dword [ebp - 0x7c4], ebx
push eax
push 0x402918
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
je 0x4038ee
push 0x4029f0
call fcn.004050c3
pop ecx
cmp dword [ebp - 0x7c4], ebx
je 0x4038bf
push dword [ebp - 0x7c4]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x79c], ebx
je 0x4038d3
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x4038e7
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffff5
jmp 0x403841
test esi, esi
je 0x4038fd
push 0x402a28
call fcn.004050c3
pop ecx
push ebx
push dword [ebp - 0x7c4]
call dword [sym.imp.msi.dll_MsiViewModify]
test eax, eax
je 0x40395c
push 0x402a68
call fcn.004050c3
pop ecx
cmp dword [ebp - 0x7c4], ebx
je 0x40392d
push dword [ebp - 0x7c4]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x79c], ebx
je 0x403941
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x403955
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffff4
jmp 0x403841
test esi, esi
je 0x40396b
push 0x402aa4
call fcn.004050c3
pop ecx
cmp dword [ebp - 0x7c4], ebx
je 0x40397f
push dword [ebp - 0x7c4]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
push dword [ebp - 0x79c]
lea eax, [ebp - 0x14]
push 0x402ad4
push 0x10
push eax
call fcn.004034a0
add esp, 0x10
push 0x402ad8
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
mov dword [ebp - 0x7d8], edi
test edi, edi
jne 0x4039f0
mov eax, 0x402ad8
push eax
push 0x402ae0
call fcn.004050c3
pop ecx
pop ecx
cmp dword [ebp - 0x79c], ebx
je 0x4039d5
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x4039e9
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffff2
jmp 0x403841
push 0x402afc
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x7cc], eax
test eax, eax
jne 0x403a11
push 0x402b10
call fcn.004050c3
pop ecx
push ebx
mov byte [ebp - 0x795], bl
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
js 0x403a7c
mov byte [ebp - 0x795], 1
push ebx
push 2
call dword [sym.imp.msi.dll_MsiSetPropertyW]
mov eax, dword [ebp - 0x7cc]
mov dword [ebp - 0x7a0], ebx
test eax, eax
je 0x403a95
lea ecx, [ebp - 0x7a0]
push ecx
push 1
lea ecx, [ebp - 0x14]
push ecx
mov ecx, eax
call dword [0x41118c]
call dword [ebp - 0x7cc]
test eax, eax
je 0x403b0d
push 0x402bd8
call fcn.004050c3
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x403e04
cmp eax, 0x80010106
je 0x403a29
push eax
push 0x402ba0
call fcn.004050c3
pop ecx
pop ecx
jmp 0x4047c3
lea eax, [ebp - 0x7a0]
push eax
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.msi.dll_MsiPreviewBillboardA]
test eax, eax
je 0x403b0d
push 0x402bd8
call fcn.004050c3
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7a0], ebx
je 0x403ad0
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], bl
je 0x403ade
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], ebx
je 0x403af2
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x403b06
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffffd
jmp 0x403841
test esi, esi
je 0x403b1c
push 0x402bfc
call fcn.004050c3
pop ecx
push 0x402c14
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiEnumClientsW]
test eax, eax
je 0x403b94
push 0x402c24
call fcn.004050c3
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7a0], ebx
je 0x403b57
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], bl
je 0x403b65
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], ebx
je 0x403b79
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x403b8d
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffffc
jmp 0x403841
lea eax, [ebp - 0x7a8]
mov dword [ebp - 0x7a8], ebx
push eax
push 0x402c50
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
je 0x403c2d
push 0x402cbc
call fcn.004050c3
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7a8], ebx
je 0x403bdc
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a0], ebx
je 0x403bf0
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], bl
je 0x403bfe
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], ebx
je 0x403c12
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x403c26
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffffb
jmp 0x403841
test esi, esi
je 0x403c3c
push 0x402cdc
call fcn.004050c3
pop ecx
push ebx
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiViewModify]
test eax, eax
je 0x403cc4
push 0x402d00
call fcn.004050c3
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7a8], ebx
je 0x403c73
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a0], ebx
je 0x403c87
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], bl
je 0x403c95
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], ebx
je 0x403ca9
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x403cbd
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffffa
jmp 0x403841
mov dword [ebp - 0x7ac], ebx
cmp dword [ebp - 0x7d4], ebx
je 0x403d90
lea eax, [ebp - 0x7ac]
push eax
push 0x402d20
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
je 0x403d81
push 0x402d74
call fcn.004050c3
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7ac], ebx
je 0x403d1c
push dword [ebp - 0x7ac]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a8], ebx
je 0x403d30
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a0], ebx
je 0x403d44
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], bl
je 0x403d52
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], ebx
je 0x403d66
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x403d7a
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffff3
jmp 0x403841
test esi, esi
je 0x403d90
push 0x402da8
call fcn.004050c3
pop ecx
lea eax, [ebp - 0x7b0]
mov dword [ebp - 0x7b0], ebx
push eax
push 0x402de0
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
je 0x403e55
push 0x402cbc
call fcn.004050c3
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7b0], ebx
je 0x403ddc
push dword [ebp - 0x7b0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7ac], ebx
je 0x403df0
push dword [ebp - 0x7ac]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a8], ebx
je 0x403e04
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a0], ebx
je 0x403e18
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], bl
je 0x403e26
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], ebx
je 0x403e3a
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x403e4e
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffff0
jmp 0x403841
test esi, esi
je 0x403e64
push 0x402cdc
call fcn.004050c3
pop ecx
push 1
call dword [sym.imp.msi.dll_MsiDatabaseExportA]
mov esi, eax
mov dword [ebp - 0x7c0], ebx
lea eax, [ebp - 0x7c0]
push eax
push ebx
push ebx
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiGetUserInfoA]
test eax, eax
je 0x403f4f
push 0x402e04
call fcn.004050c3
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7c0], ebx
je 0x403eb7
push dword [ebp - 0x7c0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
test esi, esi
je 0x403ec2
push esi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b0], ebx
je 0x403ed6
push dword [ebp - 0x7b0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7ac], ebx
je 0x403eea
push dword [ebp - 0x7ac]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a8], ebx
je 0x403efe
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a0], ebx
je 0x403f12
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], bl
je 0x403f20
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], ebx
je 0x403f34
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x403f48
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffff8
jmp 0x403841
push ebx
push ebx
push ebx
lea eax, [ebp - 0x810]
push eax
push ebx
push 0xf
push dword [ebp - 0x7c0]
call dword [sym.imp.msi.dll_MsiSummaryInfoSetPropertyA]
test eax, eax
je 0x40402e
push 0x402e48
call fcn.004050c3
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7c0], ebx
je 0x403f96
push dword [ebp - 0x7c0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
test esi, esi
je 0x403fa1
push esi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b0], ebx
je 0x403fb5
push dword [ebp - 0x7b0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7ac], ebx
je 0x403fc9
push dword [ebp - 0x7ac]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a8], ebx
je 0x403fdd
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a0], ebx
je 0x403ff1
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], bl
je 0x403fff
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], ebx
je 0x404013
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x404027
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffff7
jmp 0x403841
mov eax, dword [ebp - 0x810]
and eax, 1
mov dword [ebp - 0x7e0], ebx
mov dword [ebp - 0x7f4], eax
mov eax, ebx
mov dword [ebp - 0x7a4], eax
cmp dword [ebp - 0x7d4], eax
je 0x404159
push 0x402e98
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [ebp - 0x7e0], ecx
test ecx, ecx
jne 0x404153
mov eax, 0x402ad8
push eax
push eax
push 0x402e98
push 0x402ea8
call fcn.004050c3
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7a4], ebx
je 0x4040a7
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7c0], ebx
je 0x4040bb
push dword [ebp - 0x7c0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
test esi, esi
je 0x4040c6
push esi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b0], ebx
je 0x4040da
push dword [ebp - 0x7b0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7ac], ebx
je 0x4040ee
push dword [ebp - 0x7ac]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a8], ebx
je 0x404102
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a0], ebx
je 0x404116
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], bl
je 0x404124
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], ebx
je 0x404138
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x40414c
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xfffffffffffffff1
jmp 0x403841
mov eax, dword [ebp - 0x7a4]
mov edi, 0x105
test eax, eax
je 0x404169
push eax
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
lea eax, [ebp - 0x7a4]
mov dword [ebp - 0x7a4], ebx
push eax
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiDatabaseIsTablePersistentA]
cmp dword [ebp - 0x7a4], 0
je 0x4046cc
lea eax, [ebp - 0x80c]
mov dword [ebp - 0x7cc], ebx
push eax
lea eax, [ebp - 0x324]
mov dword [ebp - 0x80c], edi
push eax
push 3
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiRecordSetInteger]
lea eax, [ebp - 0x814]
mov dword [ebp - 0x814], edi
push eax
lea eax, [ebp - 0x42c]
push eax
push 2
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiRecordSetInteger]
lea eax, [ebp - 0x7f0]
mov dword [ebp - 0x7f0], edi
push eax
lea eax, [ebp - 0x678]
push eax
push 1
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiRecordSetInteger]
cmp dword [ebp - 0x7ec], 0
mov dword [ebp - 0x7e4], edi
je 0x404221
push ecx
push dword [ebp - 0x7e8]
mov edx, edi
push ecx
lea ecx, [ebp - 0x19c]
call fcn.00403502
jmp 0x40424a
lea eax, [ebp - 0x7e4]
push eax
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x324]
push eax
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiGetTargetPathA]
test eax, eax
jne 0x4048d2
lea eax, [ebp - 0x42c]
push 0x7c
push eax
call fcn.00405170
mov edx, eax
pop ecx
pop ecx
test edx, edx
je 0x404263
mov byte [edx], bl
inc edx
cmp dword [ebp - 0x7f4], 0
jne 0x404270
test edx, edx
jne 0x404276
lea edx, [ebp - 0x42c]
lea eax, [ebp - 0x19c]
cmp byte [eax], 0
je 0x404287
inc eax
sub edi, 1
jne 0x40427c
mov ebx, 0x105
mov ecx, edi
mov eax, ebx
sub eax, edi
neg ecx
sbb ecx, ecx
and ecx, eax
test edi, edi
je 0x4042b0
push ecx
push edx
mov edx, ebx
lea eax, [ebp - 0x19c]
push ecx
sub edx, ecx
add ecx, eax
call fcn.00403502
lea ecx, [ebp - 0x19c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4042b9
sub ecx, edx
push 1
mov dword [ebp - 0x7e4], ecx
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov edi, eax
lea eax, [ebp - 0x19c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
and ebx, 0x10
jne 0x4046a9
push 5
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiRecordSetStreamW]
test eax, eax
jne 0x4043cb
lea eax, [ebp - 0x7c8]
mov dword [ebp - 0x7c8], 0x105
push eax
lea eax, [ebp - 0x780]
push eax
push 5
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiRecordSetInteger]
lea eax, [ebp - 0x780]
push eax
push 1
push esi
call dword [sym.imp.msi.dll_MsiReinstallFeatureFromDescriptorW]
push dword [ebp - 0x7b0]
call dword [sym.imp.msi.dll_MsiViewGetErrorW]
push esi
push dword [ebp - 0x7b0]
call dword [sym.imp.msi.dll_MsiViewModify]
test eax, eax
jne 0x4047f2
lea eax, [ebp - 0x7c4]
mov dword [ebp - 0x7c4], ebx
push eax
push dword [ebp - 0x7b0]
call dword [sym.imp.msi.dll_MsiDatabaseIsTablePersistentA]
test eax, eax
jne 0x4043a4
mov edi, dword [ebp - 0x7d0]
test edi, edi
je 0x404398
lea eax, [ebp - 0x19c]
push eax
push 0x402f40
call fcn.004050c3
pop ecx
pop ecx
mov dword [ebp - 0x7cc], 1
jmp 0x4043b5
cmp eax, 0x103
jne 0x404707
mov edi, dword [ebp - 0x7d0]
cmp dword [ebp - 0x7c4], ebx
je 0x4043d3
push dword [ebp - 0x7c4]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
jmp 0x4043d3
mov edi, dword [ebp - 0x7d0]
xor ebx, ebx
test edi, edi
je 0x4043ea
lea eax, [ebp - 0x19c]
push eax
push 0x402fb8
call fcn.004050c3
pop ecx
pop ecx
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
lea eax, [ebp - 0x19c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x404416
or dword [ebp - 0x7dc], eax
jmp 0x40442b
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push edi
mov dword [ebp - 0x7dc], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x40
pop eax
mov dword [ebp - 0x7fc], eax
mov dword [ebp - 0x7f8], eax
lea eax, [ebp - 0x7f8]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x7fc]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x19c]
push eax
call dword [sym.imp.msi.dll_MsiMessageBoxA]
test eax, eax
je 0x40446d
mov byte [ebp - 0x54], bl
mov byte [ebp - 0x94], bl
xor eax, eax
mov dword [ebp - 0x7c8], ebx
cmp dword [ebp - 0x7d4], 0
lea edi, [ebp - 0x794]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
je 0x4044da
mov edi, dword [ebp - 0x7e0]
lea eax, [ebp - 0x794]
push eax
push ebx
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x794], 0x14
push eax
mov ecx, edi
call dword [0x41118c]
call edi
test eax, eax
je 0x4044d0
push 0x402fd4
call fcn.004050c3
xor eax, eax
lea edi, [ebp - 0x794]
stosd dword es:[edi], eax
pop ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
jmp 0x4044da
mov dword [ebp - 0x7c8], 1
cmp dword [ebp - 0x7d0], 0
je 0x4045ac
push 0x40
pop eax
push 4
push dword [ebp - 0x7a4]
mov dword [ebp - 0x800], eax
mov dword [ebp - 0x804], eax
call dword [sym.imp.msi.dll_MsiRecordReadStream]
mov edi, eax
lea eax, [ebp - 0x800]
push eax
lea eax, [ebp - 0x21c]
push eax
push 5
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiRecordSetInteger]
lea eax, [ebp - 0x804]
push eax
lea eax, [ebp - 0x1dc]
push eax
push 6
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiRecordSetInteger]
push edi
push 0x402ff4
call fcn.004050c3
mov edi, dword [ebp - 0x7dc]
push edi
push 0x403010
call fcn.004050c3
add esp, 0x10
cmp dword [ebp - 0x7cc], 0
jne 0x4045b2
lea eax, [ebp - 0x21c]
push eax
push 0x40302c
call fcn.004050c3
lea eax, [ebp - 0x54]
push eax
push 0x403048
call fcn.004050c3
lea eax, [ebp - 0x1dc]
push eax
push 0x403064
call fcn.004050c3
lea eax, [ebp - 0x94]
push eax
push 0x403048
call fcn.004050c3
add esp, 0x20
jmp 0x4045b2
mov edi, dword [ebp - 0x7dc]
push edi
push 4
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiRecordSetStringW]
cmp dword [ebp - 0x7cc], 0
jne 0x4045f1
lea eax, [ebp - 0x54]
push eax
push 5
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiReinstallFeatureFromDescriptorW]
lea eax, [ebp - 0x94]
push eax
push 6
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiReinstallFeatureFromDescriptorW]
push dword [ebp - 0x7a4]
push 2
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiRecordClearData]
cmp dword [ebp - 0x7ac], 0
je 0x4046be
cmp dword [ebp - 0x7c8], 0
je 0x4046be
cmp byte [ebp - 0x54], 0
jne 0x4046be
push 6
call dword [sym.imp.msi.dll_MsiDatabaseExportA]
mov edi, eax
test edi, edi
je 0x4046be
lea eax, [ebp - 0x678]
push eax
push 1
push edi
call dword [sym.imp.msi.dll_MsiReinstallFeatureFromDescriptorW]
push ebx
push 2
push edi
call dword [sym.imp.msi.dll_MsiRecordSetStringW]
push dword [ebp - 0x790]
push 3
push edi
call dword [sym.imp.msi.dll_MsiRecordSetStringW]
push dword [ebp - 0x78c]
push 4
push edi
call dword [sym.imp.msi.dll_MsiRecordSetStringW]
push dword [ebp - 0x788]
push 5
push edi
call dword [sym.imp.msi.dll_MsiRecordSetStringW]
push dword [ebp - 0x784]
push 6
push edi
call dword [sym.imp.msi.dll_MsiRecordSetStringW]
push edi
push 3
push dword [ebp - 0x7ac]
call dword [sym.imp.msi.dll_MsiRecordClearData]
push edi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
jmp 0x4046be
lea eax, [ebp - 0x19c]
push eax
push 0x403080
call fcn.004050c3
pop ecx
pop ecx
xor ebx, ebx
mov eax, dword [ebp - 0x7a4]
test eax, eax
jne 0x404159
mov ebx, dword [ebp - 0x7d0]
test ebx, ebx
je 0x4046e1
push 0x4030a4
call fcn.004050c3
pop ecx
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiDatabaseGenerateTransformW]
test eax, eax
je 0x4048ea
push 0x4030d4
call fcn.004050c3
pop ecx
push 0xfffffffffffffff9
jmp 0x4048e7
push 0x402f94
call fcn.004050c3
pop ecx
push dword [ebp - 0x7d8]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7c4], ebx
je 0x404732
push dword [ebp - 0x7c4]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a4], ebx
je 0x404746
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7c0], ebx
je 0x40475a
push dword [ebp - 0x7c0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
test esi, esi
je 0x404765
push esi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b0], ebx
je 0x404779
push dword [ebp - 0x7b0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7ac], ebx
je 0x40478d
push dword [ebp - 0x7ac]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a8], ebx
je 0x4047a1
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a0], ebx
je 0x4047b5
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], bl
je 0x4047c3
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], ebx
je 0x4047d7
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], ebx
je 0x4047eb
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xffffffffffffffee
jmp 0x403841
push 0x402d00
call fcn.004050c3
pop ecx
push dword [ebp - 0x7d8]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7a4], 0
je 0x40481e
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7c0], 0
je 0x404833
push dword [ebp - 0x7c0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
test esi, esi
je 0x40483e
push esi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b0], 0
je 0x404853
push dword [ebp - 0x7b0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7ac], 0
je 0x404868
push dword [ebp - 0x7ac]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a8], 0
je 0x40487d
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a0], 0
je 0x404892
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], 0
je 0x4048a1
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], 0
je 0x4048b6
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], 0
je 0x4048cb
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
push 0xffffffffffffffef
jmp 0x403841
lea eax, [ebp - 0x324]
push eax
push 0x402f10
call fcn.004050c3
pop ecx
pop ecx
push 0xfffffffffffffff6
pop edi
jmp 0x40490d
test ebx, ebx
je 0x40490b
push 0x4030fc
call fcn.004050c3
push dword [ebp - 0x808]
push 0x403114
call fcn.004050c3
add esp, 0xc
xor edi, edi
push dword [ebp - 0x7d8]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x7a4], 0
je 0x40492e
push dword [ebp - 0x7a4]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7c0], 0
je 0x404943
push dword [ebp - 0x7c0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
test esi, esi
je 0x40494e
push esi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b0], 0
je 0x404963
push dword [ebp - 0x7b0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7ac], 0
je 0x404978
push dword [ebp - 0x7ac]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a8], 0
je 0x40498d
push dword [ebp - 0x7a8]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7a0], 0
je 0x4049a2
push dword [ebp - 0x7a0]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp byte [ebp - 0x795], 0
je 0x4049b1
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x79c], 0
je 0x4049c6
push dword [ebp - 0x79c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x7b8], 0
je 0x4049db
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
mov eax, edi
jmp 0x404a35
push 0x402890
call fcn.004050c3
lea eax, [ebp - 0x570]
push eax
push 0x40288c
call fcn.004050c3
add esp, 0xc
jmp 0x404a1f
cmp byte [ebp - 0x7b4], bl
jne 0x404a0c
call fcn.004035fe
lea eax, [ebp - 0x570]
push eax
push 0x40288c
call fcn.004050c3
pop ecx
pop ecx
cmp dword [ebp - 0x7b8], ebx
je 0x404a33
push dword [ebp - 0x7b8]
call fcn.00405257
pop ecx
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00404eaa
leave
ret