Function at 0x403cfa
Capabilities:
Delete file
Get common file path
Reference sql statements

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x560
mov eax, dword [0x40e58c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
push 0x4026c4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xor ebx, ebx
inc ebx
test eax, eax
je 0x403d49
push 0x4026e0
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x403d49
xor eax, eax
mov ecx, esi
push eax
push eax
push ebx
push eax
call dword [0x411160]
call esi
xor eax, eax
lea ecx, [ebp - 0x54c]
push 0x4036c0
mov dword [ebp - 0x54c], eax
mov dword [ebp - 0x548], eax
mov byte [ebp - 0x544], al
call fcn.00404bb7
push edi
push dword [ebp + 8]
lea ecx, [ebp - 0x54c]
call fcn.00404c49
test eax, eax
je 0x404b7e
push 0x3f
lea ecx, [ebp - 0x54c]
call fcn.00404d85
test eax, eax
jne 0x404b7e
cmp byte [ebp - 0x544], al
jne 0x403da6
call fcn.00403bbb
push 0x64
lea ecx, [ebp - 0x54c]
call fcn.00404dc4
mov edi, eax
test edi, edi
je 0x404b71
cmp byte [edi], 0
je 0x404b71
push 0x6d
lea ecx, [ebp - 0x54c]
call fcn.00404dc4
mov dword [ebp - 0x560], eax
test eax, eax
je 0x404b6a
cmp byte [eax], 0
je 0x404b6a
push eax
call fcn.004051c4
mov dword [ebp - 0x540], eax
pop ecx
cmp eax, ebx
jge 0x403e0c
push eax
push 0x402b00
call fcn.00405129
pop ecx
jmp 0x404b7b
push 0x63
lea ecx, [ebp - 0x54c]
call fcn.00404dc4
mov esi, eax
mov dword [ebp - 0x508], esi
test esi, esi
je 0x404b63
cmp byte [esi], 0
je 0x404b63
push 0x68
lea ecx, [ebp - 0x54c]
call fcn.00404d85
and dword [ebp - 0x50c], 0
mov dword [ebp - 0x550], eax
lea eax, [ebp - 0x50c]
push eax
push ebx
push edi
call dword [sym.imp.msi.dll_MsiOpenProductA]
test eax, eax
je 0x403e73
push eax
push edi
push 0x402b70
call fcn.00405129
add esp, 0xc
jmp 0x404b3b
xor edi, edi
push edi
push 0x80
push 3
push edi
push ebx
push 0x80000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
jne 0x403ead
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push 0x402bb8
call fcn.00405129
add esp, 0xc
or ebx, 0xffffffff
jmp 0x404b3b
push 0x402bf0
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiEnableLogA]
cmp eax, ebx
je 0x403f11
lea eax, [ebp - 0x504]
mov dword [ebp - 0x504], edi
push eax
push 0x402c08
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
jne 0x403f92
push edi
push dword [ebp - 0x504]
call dword [sym.imp.msi.dll_MsiViewModify]
test eax, eax
jne 0x403f92
cmp dword [ebp - 0x504], edi
je 0x403f11
push dword [ebp - 0x504]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
push 0x402d0c
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiEnableLogA]
cmp eax, ebx
je 0x403f6d
lea eax, [ebp - 0x504]
mov dword [ebp - 0x504], edi
push eax
push 0x402d28
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
jne 0x403fb6
push edi
push dword [ebp - 0x504]
call dword [sym.imp.msi.dll_MsiViewModify]
test eax, eax
jne 0x403fb6
cmp dword [ebp - 0x504], edi
je 0x403f6d
push dword [ebp - 0x504]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
push 0x402e00
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiEnableLogA]
cmp eax, ebx
je 0x403fbe
push 0x402e08
call fcn.00405129
pop ecx
jmp 0x404b3b
push eax
push 0x402cc8
call fcn.00405129
pop ecx
pop ecx
cmp dword [ebp - 0x504], edi
je 0x404b3b
push dword [ebp - 0x504]
jmp 0x404b35
push eax
push 0x402db8
jmp 0x403f98
push ebx
call dword [sym.imp.msi.dll_MsiDatabaseExportA]
mov edi, dword [ebp - 0x540]
mov esi, eax
push edi
push ebx
push esi
mov dword [ebp - 0x55c], esi
call dword [sym.imp.msi.dll_MsiRecordSetStringW]
test eax, eax
je 0x403ff2
push eax
push 0x402e40
call fcn.00405129
pop ecx
pop ecx
jmp 0x404b30
and dword [ebp - 0x538], 0
lea eax, [ebp - 0x53c]
and dword [ebp - 0x53c], 0
push eax
push 0x402e90
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
jne 0x404b52
push esi
push dword [ebp - 0x53c]
call dword [sym.imp.msi.dll_MsiViewModify]
test eax, eax
jne 0x404b52
cmp dword [ebp - 0x538], eax
je 0x404049
push dword [ebp - 0x538]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
lea eax, [ebp - 0x538]
push eax
push dword [ebp - 0x53c]
call dword [sym.imp.msi.dll_MsiDatabaseIsTablePersistentA]
test eax, eax
jne 0x404b52
and dword [ebp - 0x52c], eax
xor ebx, ebx
and dword [ebp - 0x530], ebx
cmp dword [ebp - 0x550], ebx
je 0x404092
mov eax, 0x100
push eax
mov dword [ebp - 0x530], eax
call fcn.0040502a
mov ebx, eax
pop ecx
test ebx, ebx
je 0x4040d0
lea eax, [ebp - 0x530]
xor edi, edi
push eax
push ebx
lea eax, [ebp - 0x52c]
inc edi
push eax
push edi
push dword [ebp - 0x508]
call dword [sym.imp.msi.dll_MsiAdvertiseProductExA]
cmp ax, 0xea
jne 0x404102
push ebx
call fcn.00405124
push dword [ebp - 0x530]
call fcn.0040502a
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x4040e3
push 0x402f38
call fcn.00405129
pop ecx
xor ebx, ebx
inc ebx
jmp 0x404b06
lea eax, [ebp - 0x530]
push eax
push ebx
lea eax, [ebp - 0x52c]
push eax
push edi
mov edi, dword [ebp - 0x508]
push edi
call dword [sym.imp.msi.dll_MsiAdvertiseProductExA]
jmp 0x404108
mov edi, dword [ebp - 0x508]
test eax, eax
jns 0x404125
push eax
push 0x402f5c
call fcn.00405129
pop ecx
pop ecx
test ebx, ebx
je 0x4040db
push ebx
call fcn.00405124
jmp 0x4040da
push edi
push 0x402f90
call fcn.00405129
pop ecx
pop ecx
push 0x11
pop ecx
and dword [ebp - 0x518], 0
lea edi, [ebp - 0x98]
mov esi, 0x402fc0
rep movsd dword es:[edi], dword [esi]
push 2
movsb byte es:[edi], byte [esi]
call dword [sym.imp.msi.dll_MsiDatabaseExportA]
cmp dword [ebp - 0x518], 0
mov edi, eax
mov dword [ebp - 0x554], edi
je 0x40416f
push dword [ebp - 0x518]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
lea eax, [ebp - 0x518]
push eax
lea eax, [ebp - 0x98]
push eax
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
jne 0x404ac5
push eax
push dword [ebp - 0x518]
call dword [sym.imp.msi.dll_MsiViewModify]
test eax, eax
jne 0x404ac5
lea eax, [ebp - 0x534]
xor esi, esi
and dword [ebp - 0x528], esi
and dword [ebp - 0x534], esi
push eax
push 0x403058
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
jne 0x404aa5
push eax
push dword [ebp - 0x534]
call dword [sym.imp.msi.dll_MsiViewModify]
test eax, eax
jne 0x404aa5
cmp dword [ebp - 0x528], 0
je 0x4041fe
push dword [ebp - 0x528]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
and dword [ebp - 0x528], 0
lea eax, [ebp - 0x528]
push eax
push dword [ebp - 0x534]
call dword [sym.imp.msi.dll_MsiDatabaseIsTablePersistentA]
test eax, eax
jne 0x40421f
inc esi
jmp 0x4041e9
cmp eax, 0x103
jne 0x404aa5
lea eax, [esi + 1]
mov dword [ebp - 0x508], eax
xor eax, eax
push 1
mov dword [ebp - 0x504], eax
mov dword [ebp - 0x510], eax
mov dword [ebp - 0x520], eax
call dword [sym.imp.msi.dll_MsiDatabaseExportA]
cmp dword [ebp - 0x510], 0
mov esi, eax
mov dword [ebp - 0x540], esi
je 0x40426c
push dword [ebp - 0x510]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
lea eax, [ebp - 0x510]
push eax
push 0x4030e8
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
je 0x404299
push eax
push 0x403008
call fcn.00405129
pop ecx
jmp 0x4043d7
cmp dword [ebp - 0x508], 0
jbe 0x4043cd
mov eax, dword [ebp - 0x504]
push eax
push 0x4036b4
push 0x40312c
lea eax, [ebp - 0x50]
push 0x49
push eax
call fcn.00403a20
add esp, 0x14
test eax, eax
js 0x4043a8
lea eax, [ebp - 0x50]
push eax
push 1
push esi
call dword [sym.imp.msi.dll_MsiReinstallFeatureFromDescriptorW]
test eax, eax
jne 0x4043a8
push esi
push dword [ebp - 0x510]
call dword [sym.imp.msi.dll_MsiViewModify]
test eax, eax
jne 0x4043a8
cmp dword [ebp - 0x520], eax
je 0x40430b
push dword [ebp - 0x520]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
and dword [ebp - 0x520], 0
lea eax, [ebp - 0x520]
push eax
push dword [ebp - 0x510]
call dword [sym.imp.msi.dll_MsiDatabaseIsTablePersistentA]
push dword [ebp - 0x510]
cmp eax, 0x103
jne 0x4043ae
call dword [sym.imp.msi.dll_MsiViewGetErrorW]
cmp dword [ebp - 0x520], 0
je 0x40434d
push dword [ebp - 0x520]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
and dword [ebp - 0x520], 0
test esi, esi
je 0x40435f
push esi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
and dword [ebp - 0x540], 0
cmp dword [ebp - 0x510], 0
je 0x40437b
push dword [ebp - 0x510]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
and dword [ebp - 0x510], 0
lea eax, [ebp - 0x50]
push eax
xor esi, esi
inc esi
push esi
push edi
call dword [sym.imp.msi.dll_MsiReinstallFeatureFromDescriptorW]
test eax, eax
je 0x40445a
push 0x103
push 0x403180
jmp 0x40428e
push dword [ebp - 0x510]
call dword [sym.imp.msi.dll_MsiViewGetErrorW]
mov eax, dword [ebp - 0x504]
inc eax
mov dword [ebp - 0x504], eax
cmp eax, dword [ebp - 0x508]
jb 0x4042ac
push 0x403138
call fcn.00405129
pop ecx
test ebx, ebx
je 0x4043e3
push ebx
call fcn.00405124
pop ecx
xor ebx, ebx
inc ebx
mov eax, dword [ebp - 0x540]
test eax, eax
je 0x4043f7
push eax
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x520], 0
je 0x40440c
push dword [ebp - 0x520]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x510], 0
je 0x404421
push dword [ebp - 0x510]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov edi, dword [ebp - 0x554]
cmp dword [ebp - 0x528], 0
je 0x40443c
push dword [ebp - 0x528]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x534], 0
je 0x404ae0
push dword [ebp - 0x534]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
jmp 0x404ae0
mov eax, dword [ebp - 0x52c]
mov eax, dword [eax + 8]
push eax
mov dword [ebp - 0x558], eax
call fcn.0040502a
pop ecx
mov ecx, eax
mov dword [ebp - 0x508], ecx
test ecx, ecx
jne 0x404486
push 0x4031dc
jmp 0x4043d2
mov eax, dword [ebp - 0x52c]
push dword [ebp - 0x558]
push dword [eax + 4]
push ecx
call fcn.0040c0b0
add esp, 0xc
push dword [ebp - 0x52c]
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
push 0x104
call fcn.0040502a
mov dword [ebp - 0x504], eax
pop ecx
test eax, eax
jne 0x4044e0
push 0x4031dc
call fcn.00405129
pop ecx
test ebx, ebx
je 0x4044d5
push ebx
call fcn.00405124
pop ecx
push dword [ebp - 0x508]
jmp 0x4043dd
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x404a94
cmp eax, 0x104
ja 0x404a94
lea eax, [ebp - 0x2f8]
push eax
push 0
push 0x403244
push dword [ebp - 0x504]
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
jne 0x404557
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x403248
call fcn.00405129
pop ecx
pop ecx
test ebx, ebx
je 0x40453b
push ebx
call fcn.00405124
pop ecx
push dword [ebp - 0x508]
call fcn.00405124
push dword [ebp - 0x504]
call fcn.00405124
pop ecx
jmp 0x4043e2
push dword [ebp - 0x558]
mov edx, dword [ebp - 0x508]
lea ecx, [ebp - 0x2f8]
call fcn.00403a82
pop ecx
test al, al
jne 0x40457f
push 0x403280
call fcn.00405129
jmp 0x4045b9
lea eax, [ebp - 0x2f8]
push eax
push 2
push edi
call dword [sym.imp.msi.dll_MsiReinstallFeatureA]
test eax, eax
je 0x40459b
push eax
push 0x4032b0
jmp 0x4045b3
push edi
push esi
push dword [ebp - 0x518]
call dword [sym.imp.msi.dll_MsiRecordClearData]
test eax, eax
je 0x4045ef
push eax
push 0x403300
call fcn.00405129
pop ecx
pop ecx
test ebx, ebx
je 0x4045c5
push ebx
call fcn.00405124
pop ecx
push dword [ebp - 0x508]
call fcn.00405124
push dword [ebp - 0x504]
call fcn.00405124
pop ecx
pop ecx
lea eax, [ebp - 0x2f8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x4043e3
test edi, edi
je 0x4045fa
push edi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
push dword [ebp - 0x518]
and dword [ebp - 0x554], 0
call dword [sym.imp.msi.dll_MsiViewGetErrorW]
cmp dword [ebp - 0x518], 0
je 0x404622
push dword [ebp - 0x518]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
and dword [ebp - 0x518], 0
lea eax, [ebp - 0x2f8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x40465a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x2f8]
push eax
push 0x403364
call fcn.00405129
add esp, 0xc
jmp 0x404530
push 0x15
pop ecx
mov esi, 0x4033a0
and dword [ebp - 0x514], 0
lea edi, [ebp - 0xf0]
rep movsd dword es:[edi], dword [esi]
push 4
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call dword [sym.imp.msi.dll_MsiDatabaseExportA]
cmp dword [ebp - 0x514], 0
mov esi, eax
je 0x404693
push dword [ebp - 0x514]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
lea eax, [ebp - 0x514]
push eax
lea eax, [ebp - 0xf0]
push eax
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
jne 0x404a38
push eax
push dword [ebp - 0x514]
call dword [sym.imp.msi.dll_MsiViewModify]
test eax, eax
jne 0x404a38
push 0x402e00
xor edi, edi
inc edi
push edi
push esi
call dword [sym.imp.msi.dll_MsiReinstallFeatureFromDescriptorW]
test eax, eax
je 0x4046e9
push eax
push 0x403448
jmp 0x404a3e
push dword [ebp - 0x560]
push 2
push esi
call dword [sym.imp.msi.dll_MsiReinstallFeatureFromDescriptorW]
test eax, eax
jne 0x4046de
and dword [ebp - 0x51c], eax
lea eax, [ebp - 0x51c]
push eax
push 0x4034a8
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiEnableUIPreview]
test eax, eax
jne 0x4049ee
push esi
push dword [ebp - 0x51c]
call dword [sym.imp.msi.dll_MsiViewModify]
test eax, eax
jne 0x4049ee
and dword [ebp - 0x524], eax
lea eax, [ebp - 0x524]
push eax
push dword [ebp - 0x51c]
call dword [sym.imp.msi.dll_MsiDatabaseIsTablePersistentA]
test eax, eax
je 0x404763
cmp eax, 0x103
je 0x404783
push eax
push 0x403548
jmp 0x4047de
push dword [ebp - 0x524]
push 6
push dword [ebp - 0x51c]
call dword [sym.imp.msi.dll_MsiRecordClearData]
test eax, eax
je 0x404783
push eax
push 0x403570
jmp 0x4047de
push dword [ebp - 0x51c]
call dword [sym.imp.msi.dll_MsiViewGetErrorW]
cmp dword [ebp - 0x524], 0
je 0x4047a4
push dword [ebp - 0x524]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
and dword [ebp - 0x524], 0
cmp dword [ebp - 0x51c], 0
je 0x4047c0
push dword [ebp - 0x51c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
and dword [ebp - 0x51c], 0
lea eax, [ebp - 0x50]
push eax
push 3
push esi
call dword [sym.imp.msi.dll_MsiReinstallFeatureFromDescriptorW]
test eax, eax
je 0x4047f2
push eax
push 0x403448
call fcn.00405129
pop ecx
pop ecx
test ebx, ebx
je 0x404837
push ebx
call fcn.00405124
pop ecx
jmp 0x404837
cmp dword [ebp - 0x550], 0
je 0x4048e6
lea eax, [ebp - 0x500]
push eax
push 0
push 0x4035a8
push dword [ebp - 0x504]
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
jne 0x404852
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x403248
call fcn.00405129
push ebx
call fcn.00405124
add esp, 0xc
push dword [ebp - 0x508]
call fcn.00405124
push dword [ebp - 0x504]
call fcn.00405124
jmp 0x4049ce
push dword [ebp - 0x530]
mov edx, ebx
lea ecx, [ebp - 0x500]
call fcn.00403a82
pop ecx
test al, al
jne 0x404895
push 0x4035ac
call fcn.00405129
push ebx
call fcn.00405124
push dword [ebp - 0x508]
call fcn.00405124
push dword [ebp - 0x504]
call fcn.00405124
add esp, 0x10
jmp 0x4048d4
lea eax, [ebp - 0x500]
push eax
push 4
push esi
call dword [sym.imp.msi.dll_MsiReinstallFeatureA]
test eax, eax
je 0x4048e6
push 0
push 0x4035d8
call fcn.00405129
push ebx
call fcn.00405124
push dword [ebp - 0x508]
call fcn.00405124
push dword [ebp - 0x504]
call fcn.00405124
add esp, 0x14
lea eax, [ebp - 0x500]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x4049d0
push esi
push edi
push dword [ebp - 0x514]
call dword [sym.imp.msi.dll_MsiRecordClearData]
test eax, eax
je 0x404927
push 0
push 0x403620
call fcn.00405129
pop ecx
pop ecx
test ebx, ebx
je 0x404837
push ebx
call fcn.00405124
pop ecx
lea eax, [ebp - 0x500]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x404837
test esi, esi
je 0x404932
push esi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
push dword [ebp - 0x514]
xor esi, esi
call dword [sym.imp.msi.dll_MsiViewGetErrorW]
cmp dword [ebp - 0x514], esi
je 0x404954
push dword [ebp - 0x514]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
push dword [ebp - 0x508]
and dword [ebp - 0x514], esi
call fcn.00405124
push dword [ebp - 0x504]
call fcn.00405124
pop ecx
pop ecx
cmp dword [ebp - 0x550], esi
je 0x4049b3
test ebx, ebx
je 0x404985
push ebx
call fcn.00405124
pop ecx
lea eax, [ebp - 0x500]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x4049b3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x500]
push eax
push 0x403364
call fcn.00405129
add esp, 0xc
jmp 0x4049d0
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiDatabaseGenerateTransformW]
test eax, eax
je 0x4049d5
push eax
push 0x403680
call fcn.00405129
pop ecx
pop ecx
xor ebx, ebx
inc ebx
jmp 0x4049d7
xor ebx, ebx
cmp dword [ebp - 0x524], 0
je 0x404a21
push dword [ebp - 0x524]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
jmp 0x404a21
push eax
push 0x4034f0
call fcn.00405129
pop ecx
pop ecx
test ebx, ebx
je 0x404a06
push ebx
call fcn.00405124
pop ecx
push dword [ebp - 0x508]
call fcn.00405124
push dword [ebp - 0x504]
call fcn.00405124
pop ecx
xor ebx, ebx
pop ecx
inc ebx
cmp dword [ebp - 0x51c], 0
je 0x404a6b
push dword [ebp - 0x51c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
jmp 0x404a6b
push eax
push 0x4033f8
call fcn.00405129
pop ecx
pop ecx
test ebx, ebx
je 0x404a50
push ebx
call fcn.00405124
pop ecx
push dword [ebp - 0x508]
call fcn.00405124
push dword [ebp - 0x504]
call fcn.00405124
pop ecx
xor ebx, ebx
pop ecx
inc ebx
test esi, esi
je 0x404a76
push esi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x514], 0
je 0x4043f7
push dword [ebp - 0x514]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
jmp 0x4043e6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x403200
jmp 0x404529
push eax
push 0x403080
call fcn.00405129
pop ecx
pop ecx
test ebx, ebx
je 0x404abd
push ebx
call fcn.00405124
pop ecx
xor ebx, ebx
inc ebx
jmp 0x404427
push eax
push 0x403008
call fcn.00405129
pop ecx
pop ecx
test ebx, ebx
je 0x404add
push ebx
call fcn.00405124
pop ecx
xor ebx, ebx
inc ebx
test edi, edi
je 0x404aeb
push edi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x518], 0
je 0x404b00
push dword [ebp - 0x518]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
mov esi, dword [ebp - 0x55c]
cmp dword [ebp - 0x538], 0
je 0x404b1b
push dword [ebp - 0x538]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x53c], 0
je 0x404b30
push dword [ebp - 0x53c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
test esi, esi
je 0x404b3b
push esi
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
cmp dword [ebp - 0x50c], 0
je 0x404b91
push dword [ebp - 0x50c]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
jmp 0x404b91
push eax
push edi
push 0x402ed8
call fcn.00405129
add esp, 0xc
jmp 0x404b06
push 0x402b4c
jmp 0x404b76
push 0x402ad8
jmp 0x404b76
push 0x402ab8
call fcn.00405129
pop ecx
jmp 0x404b8c
cmp byte [ebp - 0x544], 0
jne 0x404b8c
call fcn.00403bbb
call fcn.00403c52
cmp dword [ebp - 0x548], 0
je 0x404ba6
push dword [ebp - 0x548]
call fcn.00405124
pop ecx
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040501a
leave
ret